Declaração de Caso Pascal
Você observou que if-then-elsedeclarações nos permitem implementar várias decisões em um programa. Isso também pode ser alcançado usando ocase declaração de forma mais simples.
Sintaxe
A sintaxe da instrução case é -
case (expression) of
L1 : S1;
L2: S2;
...
...
Ln: Sn;
end;
Onde, L1, L2... são rótulos de caso ou valores de entrada, que podem ser inteiros, caracteres, booleanos ou itens de dados enumerados. S1, S2, ... são instruções Pascal, cada uma dessas instruções pode ter um ou mais de um rótulo case associado a ela. A expressão é chamada decase selector ou o case index. O índice de caso pode assumir valores que correspondem aos rótulos de caso.
A declaração do caso deve sempre ter um end declaração associada a ele.
As seguintes regras se aplicam a uma declaração de caso -
A expressão usada em uma instrução case deve ter um tipo integral ou enumerado ou ser de um tipo de classe em que a classe tenha uma única função de conversão para um tipo integral ou enumerado.
Você pode ter qualquer número de declarações de caso dentro de um caso. Cada caso é seguido pelo valor a ser comparado e dois pontos.
O rótulo de caso para um caso deve ser do mesmo tipo de dados que a expressão na instrução de caso e deve ser uma constante ou literal.
O compilador avaliará a expressão case. Se um dos valores do rótulo do caso corresponder ao valor da expressão, a instrução que segue esse rótulo é executada. Depois disso, o programa continua após o término final.
Se nenhum dos rótulos case corresponder ao valor da expressão, a lista de instruções após a palavra-chave else ou else é executada. Esta pode ser uma lista de instruções vazia. Se nenhuma outra parte estiver presente e nenhuma constante de case corresponder ao valor da expressão, o fluxo do programa continuará após o término final.
As declarações case podem ser declarações compostas (ou seja, um bloco Begin ... End).
Diagrama de fluxo
Exemplo
O exemplo a seguir ilustra o conceito -
program checkCase;
var
grade: char;
begin
grade := 'A';
case (grade) of
'A' : writeln('Excellent!' );
'B', 'C': writeln('Well done' );
'D' : writeln('You passed' );
'F' : writeln('Better try again' );
end;
writeln('Your grade is ', grade );
end.
Quando o código acima é compilado e executado, ele produz o seguinte resultado -
Excellent!
Your grade is A