Échanger deux valeurs – Variable temporaire

En COBOL, il n’existe pas d’instruction native du type « SWAP a b » comme dans certains langages modernes. Pour échanger les valeurs de deux variables, on utilise presque toujours une variable temporaire.

C’est une technique très importante à bien comprendre dès le début, car elle revient très souvent quand on manipule des données.

Exemple de code

IDENTIFICATION DIVISION.
PROGRAM-ID. ECHANGE-VALEURS.

DATA DIVISION.
WORKING-STORAGE SECTION.
01  A           PIC X(10) VALUE "Paris    ".
01  B           PIC X(10) VALUE "Londres  ".
01  TEMP        PIC X(10).

PROCEDURE DIVISION.
    DISPLAY "Avant échange:"
    DISPLAY "A = " A
    DISPLAY "B = " B

    MOVE A     TO TEMP
    MOVE B     TO A
    MOVE TEMP  TO B

    DISPLAY "Après échange:"
    DISPLAY "A = " A
    DISPLAY "B = " B

    STOP RUN.
        
Télécharger le code

Sortie du programme

Avant échange:
A = Paris
B = Londres
Après échange:
A = Londres
B = Paris

Explication détaillée pour débutants

Remarque : en COBOL classique, on ne peut pas faire MOVE A TO B puis MOVE B TO A directement, car la première instruction aurait déjà écrasé la valeur de B. C’est pourquoi la variable temporaire est indispensable.