Menu

Nested IF:

Como outras linguagens de programação COBOL, COBOL também permite a instrução IF aninhada. Instrução IF dentro da instrução IF chamada de instrução IF aninhada. Não há limite para a profundidade das instruções IF aninhadas.

Syntax:

IF Condition-1 THEN
    IF Condition-2 THEN
        Statements-block-1
    [ELSE
        Statements-block-2
    END-IF]
[ELSE
    IF Condition-3 THEN
        Statements-block-3
    [ELSE
        Statements-block-4
    END-IF]
END-IF.]

Exemplo 1: Vamos ver um exemplo de instrução de condição IF no programa COBOL.

IDENTIFICATION DIVISION.
PROGRAM-ID. TSTHELLO.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-NUM1 PIC 9(9).
01 WS-NUM2 PIC 9(9).
01 WS-NUM3 PIC 9(5).
01 WS-NUM4 PIC 9(6).

PROCEDURE DIVISION.
A000-FIRST-PARA.
    MOVE 25 TO WS-NUM1 WS-NUM3.
    MOVE 15 TO WS-NUM2 WS-NUM4.

    IF WS-NUM1 > WS-NUM2 THEN
       DISPLAY 'IN LOOP 1 - IF BLOCK'

       IF WS-NUM3 = WS-NUM4 THEN
          DISPLAY 'IN LOOP 2 - IF BLOCK'
       ELSE
          DISPLAY 'IN LOOP 2 - ELSE BLOCK'
       END-IF

    ELSE
       DISPLAY 'IN LOOP 1 - ELSE BLOCK'
    END-IF.

    STOP RUN.

Quando você compila e executa o programa acima, ele produz o seguinte resultado −

Output:

IN LOOP 1 - IF BLOCK
IN LOOP 2 - ELSE BLOCK

Exemplo 2: Vamos ver outro exemplo simples para a instrução de condição IF.

IDENTIFICATION DIVISION.
PROGRAM-ID. TSTHELLO.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 CHECK-GENDER.
   05 GENDER PIC X(1).
      88 MALE VALUE 'M'.
      88 FEMALE VALUE 'F'.

PROCEDURE DIVISION.
0000-MAIN-PARA.
     SET FEMALE TO TRUE.
     IF MALE
        DISPLAY "Gender: Male"
     ELSE
        DISPLAY "Gender: Female"
     END-IF.
     STOP RUN.

Quando você compila e executa o programa acima, ele produz o seguinte resultado −

Output:

Gender: Female