|
Um item de nível 88 é usado para dar um nome a uma condição.
Usar um nome de condição tem dois benefícios principais:
- Ele permite que um nome descritivo seja atribuído ao que, de outra forma, pode não ser uma razão óbvia para um teste.
- Se uma condição que está sujeita a alteração devido a uma condição além do controle do Desenvolvedor e essa condição é testada em vários lugares na
PROCEDURE DIVISION, usar o nome da condição na divisão em vez da condição real permite que o programador que mantém o programa mude os valores que definem
a condição em apenas um local na DATA DIVISION, em vez de ter que procurar todas as ocorrências individuais na PROCEDURE DIVISION.
Um pequeno exemplo
05 WS-COMPANY PIC 9(004).
88 WS-BRASILIA VALUES 3
15
39 THRU 42
76.
Para testar uma empresa fazendo negócios em Brasilia, sem o item de níveis 88,
você teria que codificar:
* IF condição simples:
IF WS-COMPANY EQUAL 3 OR 15 OR 39 OR
40 OR 41 OR 42 OR 76
* IF com a condição do Nível 88:
IF WS-BRASILIA
descrever a rotina
END-IF
|
Não seria aparente para a pessoa lendo o código qual condição você estava testando.
Com o 88 no lugar, você poderia codificar o teste assim:
Qualquer pessoa lendo o código poderia dizer para qual condição você estava testando e se a verificação foi feita várias vezes ao longo da PROCEDURE
DIVISION e a lista de empresas que fazem negócios na Califórnia muda, é necessário apenas alterar a lista de valores associados ao 88- item de nível.
Embora o nome de dados associado a um item de nível 88 possa ter qualquer valor, o próprio item de nível 88 pode ter apenas um de dois valores, verdadeiro
ou falso.
O item é verdadeiro se o item de dados imediatamente acima de 88 tiver algum dos valores associados ao item 88, caso contrário, é falso.
Os itens de nível 88 podem ser associados a itens de grupo ou elementares.
IDENTIFICATION DIVISION.
PROGRAM-ID. NIVEL88.
AUTHOR. DORNELLES CARLOS ALBERTO.
* Um programa de exemplo que demonstra o uso do nível 88
* O verbo EVALUATE eh utilizado.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 OPCAO PIC X(001).
88 VOGAL VALUE "a", "e", "i", "o", "u"
"A", "E", "I", "O", "U".
88 CONSOANTE VALUE "b", "c", "d", "f", "g", "h"
"j" THRU "n", "p" THRU "t", "v" THRU "z"
"B", "C", "D", "F", "F", "H"
"J" THRU "N", "P" THRU "T", "V" THRU "Z".
88 NUMERO VALUE "0" THRU "9".
88 CARACTER-VALIDO VALUE "a" THRU "z", "A" THRU "Z"
"0" THRU "9".
PROCEDURE DIVISION.
001-INICIO.
DISPLAY "Insira um caracter ou um dígito.".
ACCEPT OPCAO.
EVALUATE TRUE
WHEN VOGAL DISPLAY "OPCAO " OPCAO " eh uma VOGAL."
WHEN CONSOANTE DISPLAY "OPCAO " OPCAO " eh uma CONSOANTE."
WHEN NUMERO DISPLAY "OPCAO " OPCAO " eh um NUMERO."
WHEN OTHER DISPLAY OPCAO " OPCAO INVALIDA"
END-EVALUATE
STOP RUN.
|