A instrução EVALUATE
é a estrutura de decisão múltipla do COBOL, equivalente ao SWITCH
de outras linguagens, mas ainda mais poderosa. Ela permite substituir diversas instruções IF
aninhadas por uma estrutura mais clara e organizada.
📌 Para que serve
-
Tomar decisões com múltiplas possibilidades.
-
Avaliar constantes, expressões, condições ou mesmo lógica booleana (
TRUE
/FALSE
). -
Melhorar a legibilidade de decisões complexas.
-
Substituir múltiplos
IF / ELSE IF / ELSE
.
🧾 Sintaxe básica
EVALUATE expressão-ou-condição
WHEN condição-1
instruções-1
WHEN condição-2
instruções-2
...
WHEN OTHER
instruções-padrão
END-EVALUATE.
✅ Palavras-chave úteis
Palavra-chave | Significado |
---|---|
WHEN |
Define o valor ou condição esperada. |
OTHER |
Executado se nenhuma das condições anteriores for satisfeita. |
THRU / THROUGH |
Define um intervalo de valores para a condição. |
TRUE / FALSE |
Permite avaliação booleana explícita. |
ANY |
Aceita qualquer valor (corresponde a qualquer entrada). |
NOT |
Inverte uma condição ou valor lógico. |
🔍 Exemplos
Exemplo 1 – Avaliação de entrada
EVALUATE MENU-OPCAO
WHEN "1"
PERFORM CONSULTAR-CLIENTE
WHEN "2"
PERFORM CADASTRAR-CLIENTE
WHEN "3" THRU "5"
PERFORM EXCLUIR-CLIENTE
WHEN OTHER
DISPLAY "Opção inválida!"
END-EVALUATE.
Exemplo 2 – Avaliação booleana
EVALUATE TRUE
WHEN NOT CLIENTE-ENCONTRADO
DISPLAY "Cliente não encontrado."
WHEN CLIENTE-ATIVO
DISPLAY "Cliente ativo."
WHEN OTHER
DISPLAY "Situação desconhecida."
END-EVALUATE.
Exemplo 3 – Equivalente com IF
IF MENU-OPCAO = "1"
PERFORM CONSULTAR-CLIENTE
ELSE IF MENU-OPCAO = "2"
PERFORM CADASTRAR-CLIENTE
ELSE IF MENU-OPCAO >= "3" AND MENU-OPCAO <= "5"
PERFORM EXCLUIR-CLIENTE
ELSE
DISPLAY "Opção inválida!"
END-IF.
⚠️ Considerações
-
Apenas um único assunto pode ser avaliado por
EVALUATE
. -
Não é permitido
WHEN
sem instruções associadas. -
Operações com
NATIONAL
podem exigir conversão para Unicode. -
Em programas otimizados, variáveis eliminadas pelo compilador podem não estar disponíveis para avaliação.
-
Ideal para manter a lógica estruturada, evitando o uso de
ALTER
ouGO TO
.
✅ Conclusão
A instrução EVALUATE
é uma ferramenta poderosa para simplificar decisões complexas em COBOL, tornando o código mais limpo, estruturado e legível. Seu uso é recomendado em substituição a vários IF
encadeados, sendo compatível com expressões, condições e até intervalos de valores.