A principal diferença entre o caso Avaliar e VBA Select é que a avaliação não requer uma declaração de "quebra" porque o controle sai automaticamente da declaração de avaliação assim que uma condição for atendida.
Formatos:
Antes de examinarmos a sintaxe e o exemplo de declaração de avaliação, gostaríamos de mencionar que a declaração de avaliação de COBOL tem quatro formatos diferentes. Vamos discutir cada formato com cada sintaxe.
A sintaxe básica da declaração de avaliação é:
Avaliar verdadeiro
Quando condição-1
Declaração…
Quando outro
Declaração…
Emo-avaliação.
A cláusula "quando" é geralmente usada para especificar sua condição. Nos exemplos a seguir, especificamos a afirmação que precisa ser executada para esse evento específico. A avaliação da declaração termina com uma explicação clara do fim de seu escopo.
Exemplo de programação 1:
Divisão de Identificação.
Programa-ID. EMP001.
Divisão de dados.
Seção de arquivo.
Seção de armazenamento de trabalho.
01 WS-FILE-SW PIC X (01) Valor 'n'.
88 e-o-f valor 'y'.
88 NOT-E-O-F Valor 'n'.
Divisão de procedimentos.
000-main-par.
Avaliar verdadeiro
Quando e-o-f
Execute A00-WRT-TRL-REC
Quando não-o-f
Execute B00-WRT-DTL-REC
Execute B10-REC-NXT-REC
Quando outro
Execute Z00-CLL-Err
Final de avaliação.
Pare de corrida.
A00-WRT-TRL-REC.
Exibir 'Fim do arquivo'.
B00-WRT-DTL-REC.
Exibir 'não final do arquivo'.
B10-REC-NXT-REC.
Exibir 'não final do arquivo'.
Z00-CLL-Err.
Exibir 'erro'.
Saída:
Papan@Papan -virtualBox: ~/Desktop/eva $ COBC -XJF 4.cbl
Não final do arquivo
Não final do arquivo
Explicação:
Neste exemplo de programação, olhamos para o parágrafo mencionado na divisão de procedimentos, que é 000-main-pain. Usamos a declaração de avaliação neste parágrafo. Diz "avaliar verdadeiro" no início da declaração de avaliação e diz quando.
A primeira condição afirma que, se não houver registro no arquivo, significa que é o fim do arquivo. Nesse caso, basta escrever o desempenho A00-WRT-Trl-REC. Se não for o fim do arquivo e houver mais alguns registros, vá em frente e escreva o registro B00-WRT-DTL-REC, que já está no buffer e vá para o próximo registro que é B10-REC-NXT -GRAVANDO.
Caso nenhuma das condições fornecidas seja satisfeita, use o controle indo para a outra seção. Em seguida, executa Z00-CLL-ERR. É chamado de "erro" que vai para o manuseio de exceção.
Exemplo de programação 2: Avalie quando também
Divisão de Identificação.
Programa-ID. EMP002.
Divisão de dados.
Seção de arquivo.
Seção de armazenamento de trabalho.
01 WS-FILE-SW PIC X (01) Valor 'n'.
88 valor final do arquivo 'y'.
88 Valor não-final do arquivo 'n'.
01 WS-P Pic 9 (3).
01 WS-Q Pic 9 (3).
01 WS-R Pic 9 (3).
01 WS-S Pic 9 (3).
Divisão de procedimentos.
000-main-par.
Exibir "ENTER VALOR DO WS-P".
Aceitar ws-p.
Exibir "ENTER VALOR DO WS-Q".
Aceitar ws-q.
Exibir "Enter o valor do WS-R".
Aceitar WS-R.
Exibir "Enter o valor de WS-S".
Aceitar WS-S.
Avalie verdadeiro também verdadeiro
Quando ws-p = ws-q também ws-r = ws-s
Exibir 'o caso 1 é verdadeiro'
Quando WS-P> WS-Q também WS-R < WS-S
Display 'Steme 2 é verdadeiro'
Quando outro
Exibir 'Outro caso é verdadeiro'
Final de avaliação.
Saída:
Papan@papan -virtualbox: ~/desktop/eva $ cobc -xjf 2.cbl
Digite o valor do WS-P
300
Digite o valor do WS-Q
100
Digite o valor do WS-R
169
Digite o valor do WS-S
500
Caso 2 é verdadeiro
Explicação:
Vamos para a próxima variante da declaração de avaliação que é "avaliar com também". Esta variante da declaração de avaliação é semelhante ao que discutimos no exemplo anterior. A única diferença é que, nesta variante, verificamos mais de uma condição ao mesmo tempo.
Neste exemplo, a avaliação verdadeira também significa que, se ambas as condições especificadas na cláusula quando for satisfeito, apenas a declaração poderá ser executada. Os valores de "WS-P" e "WS-Q" devem corresponder, e os valores de "WS-R" e "WS-S" também devem corresponder nesta declaração. Então, apenas a afirmação "verdadeira" que está no caso é exibida como uma saída da declaração específica.
Exemplo de programação 3: Avalie quando com várias condições
Divisão de Identificação.
Programa-ID. EMP003.
Divisão de dados.
Seção de arquivo.
Seção de armazenamento de trabalho.
01 Valor de status marcial pic x (01) 'm'.
01 WS-PGE PIC X (02) Valor 36.
01 WS-Gen Pic X (01) Valor 'f'.
Divisão de procedimentos.
000-main-par.
Avalie o status marcial
Quando 'm'
Exibir 'casado'
Quando 'S'
Quando 'D'
Exibir 'Single'
Quando outro
Exibir 'não especificado'
Final de avaliação.
Avaliar verdadeiro
Quando WS-PGE> 10 e WS-GEN = 'M'
Exibir 'masculino com idade> 10'
Quando WS-PGE> 10 e WS-GEN = 'F'
Exibir 'fêmea com idade> 10'
Quando outro
Exibir 'critérios não satisfazer'
Final de avaliação.
Saída:
Papan@papan -virtualbox: ~/desktop/eva $ cobc -xjf 1.cbl
CASADO
Mulher com idade> 10
Explicação:
Neste exemplo, apesar de usar "True", usamos o nome da variável real e verificamos os valores dessas variáveis, o possível valor dessa variável específica na cláusula quando.
Neste exemplo, há um campo chamado "status marcial". Verificamos o valor desse campo em particular, sejam eles casados, solteiros ou divorciados. Se a pessoa é casada, exibe "casado". Se a pessoa é solteira, exibe "solteiro".
Exemplo de programação 4: Avalie quando com isso
Divisão de Identificação.
Programa-ID. EMP004.
Divisão de dados.
Seção de arquivo.
Seção de armazenamento de trabalho.
01 WS-FILE-SW PIC X (01) Valor 'n'.
88 valor final do arquivo 'y'.
88 Valor não-final do arquivo 'n'.
01 WS-Number Pic 9 (2) Valor zero.
Divisão de procedimentos.
000-main-par.
Exibir "Digite um número:"
Digite o valor do número WS
Avalie o número WS
Quando 1
Exibir '1'
Quando 2
Exibir '2'
Quando 3 a 6
Exibir 'Número no intervalo de 3-6'
Quando outro
Exibir 'Número não no alcance'
Final de avaliação.
Saída:
Papan@papan -virtualbox: ~/desktop/eva $ cobc -xjf 3.cbl
Digite um número:
4
Número na faixa de 3-6
Explicação:
Esta variante da declaração de avaliação também é semelhante aos exemplos anteriores. O código usa a palavra -chave "através" ao especificar as condições dentro da cláusula quando a declaração de avaliação para indicar uma série de valores para a variável que está sendo avaliada. Nesse caso, temos a declaração de avaliação e usamos uma variável chamada "número WS". O que fazemos é verificar os diferentes valores na cláusula quando.
O primeiro é que o valor do número WS é 1. Então, exibimos "1". Da mesma forma, se o valor for dois, o valor "2" será exibido, etc. Apesar de escrever várias vezes para um único valor, o que fazemos é verificar um valor entre 3 e 6, e o valor da saída está na faixa de 3 a 6.
Conclusão
Neste artigo em particular, encobrimos todas as perspectivas e a aplicação da declaração de avaliação para que entendamos o mecanismo da declaração de avaliação de uma maneira bem. Esclarecemos todo o tópico das declarações de avaliação que estão presentes na linguagem de programação COBOL.