Menu

COBOL - Declaração Avaliar


Avaliar verbo é uma substituição de séries de declaração IF-ELSE. Ele pode ser usado para avaliar a condição em particular.

AVALIAR declaração em COBOL é semelhante ao processo ou declarações switch de outras línguas.

AVALIAR pode fazer múltiplos IF tarefa condições. Se qualquer AVALIAR quando as condições satisfaz, a lista de instruções será executado sob a quando e controlo irá transferências para a próxima instrução executável após o término de avaliar.

Vamos ver a sintaxe e exemplos de Avaliar demonstrativo abaixo:

EVALUATE {Expression1/Constant/Reference/TRUE/FALSE}
	WHEN Cond-1
		Statement block-1
	WHEN Cond-2
		Statement block-2
		.
		.
		.
		.
	WHEN Cond-n
		Statement block-n
	WHEN other
		Statement block- other
END-EVALUATE.

Exemplo 1:

O exemplo a seguir mostra um comando EVALUATE e a codificação equivalente para um comando IF:

EVALUATE menu-input
  WHEN "0"
    CALL init-proc
  WHEN "1" THRU "9"
    CALL process-proc
  WHEN "R"
    CALL read-parms
  WHEN "X"
    CALL cleanup-proc
  WHEN OTHER
    CALL error-proc
END-EVALUATE;
O comando IF equivalente:

IF (menu-input = "0") THEN
  CALL init-proc
ELSE
  IF (menu-input >= "1") AND (menu-input <= "9") THEN
    CALL process-proc
  ELSE
    IF (menu-input = "R") THEN
      CALL read-parms
    ELSE
      IF (menu-input = "X") THEN
        CALL cleanup-proc
      ELSE
        CALL error-proc
      END-IF;
    END-IF;
  END-IF;
END-IF;

Exemplo 2:

IDENTIFICATION DIVISION.
PROGRAM-ID. TSSWITCH.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-A PIC 9 VALUE 0.

PROCEDURE DIVISION.
   MOVE 9 TO WS-A.

   EVALUATE TRUE
      WHEN WS-A > 2
         DISPLAY 'WS-A GREATER THAN 2'

      WHEN WS-A < 0
         DISPLAY 'WS-A LESS THAN 0'

      WHEN OTHER
         DISPLAY 'INVALID VALUE OF WS-A'
   END-EVALUATE.

   STOP RUN.

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

WS-A GREATER THAN 2