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:
- (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.
- (A + B) é avaliada, dando algum resultado intermediário, x.
- (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.
- (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: