Menu

COBOL - Condição Combinada


Duas ou mais condições podem ser conectadas logicamente para formar uma condição combinada.

Syntax:

IF [CONDITION] AND/OR [CONDITION]
   COBOL Statements
END-IF.

A condição a ser combinada pode ser qualquer uma das seguintes:
  • Uma condição simples
  • Uma condição simples negada
  • Uma condição combinada

Exemplo 1:

NOT A IS GREATER THAN B OR A + B IS EQUAL TO C AND D IS POSITIVE

é avaliado como se entre parênteses da seguinte forma:

(NOT (A IS GREATER THAN B)) OR (((A + B) IS EQUAL TO C) AND (D IS POSITIVE))

É importante entender a ordem de avaliação:
  1. (NÃO (A É MAIOR QUE B)) é avaliada, dando algum valor de verdade intermediário, t1. Se t1 for verdadeiro, a condição combinada é verdadeira e nenhuma avaliação adicional ocorre. Se t1 for falso, a avaliação continua da seguinte maneira.

  2. (A + B) é avaliada, dando algum resultado intermediário, x.

  3. (x IS EQUAL TO C) é avaliada, dando algum valor de verdade intermediário, t2. Se t2 for falso, a condição combinada é falsa e nenhuma avaliação adicional ocorre. Se t2 for verdadeiro, a avaliação continua da seguinte forma.

  4. (D IS POSITIVE) é avaliada, dando algum valor de verdade intermediário, t3. Se t3 for falso, a condição combinada será falsa. Se t3 for verdadeiro, a condição combinada é verdadeira.

Exemplo 2:

Vejamos outro exemplo de condição combinada.

IDENTIFICATION DIVISION.
PROGRAM-ID. CBLCOMBN.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-NUM1 PIC 9(2) VALUE 20.
01 WS-NUM2 PIC 9(2) VALUE 25.
01 WS-NUM3 PIC 9(2) VALUE 20.

PROCEDURE DIVISION.
A000-FIRST-PARA.

    IF WS-NUM1 IS LESS THAN WS-NUM2 AND WS-NUM1 = WS-NUM3 THEN
           DISPLAY 'BOTH CONDITION OK'
    ELSE
           DISPLAY 'ANY ONE OR BOTH CONDITION FAILED'
    END-IF.

    STOP RUN.

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

Saída:

BOTH CONDITION OK