Thursday 21 November 2024

O comando EVALUATE fornece uma notação abreviada para uma série de declarações IF. As palavras-chave não podem ser abreviadas.

>>-EVALUATE--+-constant---+------------------------------------->
             +-expression-+   
             +-reference--+   
             +-TRUE-------+   
             '-FALSE------'   

   .-----------------------------------.   
   |                       .---------. |   
   V                       V         | |   
>----WHEN--| any_clause |----command-+-+------------------------>

>--+--------------------------+--END-EVALUATE--;---------------><
   |              .---------. |                    
   |              V         | |                    
   '-WHEN--OTHER----command-+-'                    

any_clause

|--+-+-ANY-------+------------------------------------------+---|
   | +-condition-+                                          |   
   | +-TRUE------+                                          |   
   | '-FALSE-----'                                          |   
   '-+-----+--+-constant--+--+----------------------------+-'   
     '-NOT-'  '-reference-'  '-+-THROUGH-+--+-constant--+-'     
                               '-THRU----'  '-reference-'       

 

constant

Um válido Debug ferramenta constante COBOL.

expression

Um válido Debug ferramenta de expressão aritmética COBOL.

reference

Um válido Debug ferramenta de referência COBOL.

condition

Uma condição de relação simples.

command

Um válido Debug ferramenta de comando.

 

Notas:

  • Somente um único assunto é suportado.
  • Consecutivo WHENs sem comandos associados não são suportados.
  • THROUGH/THRU Intervalos podem ser especificados como constantes ou referências.
  • Ver Empresa COBOL para z/OS Referência de linguagem para uma explicação sobre as seguintes palavras-chave COBOL:

ANY

FALSE

NOT

OTHER

THROUGH

THRU

TRUE

WHEN

  • A ferramenta de Debug implementa o comando EVALUATE como uma série de comandos IF.
  • Se a opção dos DADOS do comando PLAYBACK ENABLE estiver em vigor para a unidade de compilação EVALUATE. Pode ser usado enquanto você repete as instruções gravadas usando o comando PLAYBACK.
  • Para os programas COBOL otimizados, o valor de referência não pode referir-se a todas as variáveis descartadas pelo otimizador.
  • Se uma variável COBOL é definido como nacional e é um operando em uma condição relação com um alfabético, operando alfanumérico ou numérico, o operando que não é nacional é convertido para Unicode antes que a comparação é feita, exceto para itens do grupo.

Exemplo:

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 equivalente ao comando IF:

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;