Caso
Esse comando também funciona como "desvio de fluxo", como o comando de
seleção, sendo útil quando houver mais de
uma opção de "desvio" e essa depender de valores inteiros.
Várias opções de comando caso devem estar associadas com um único comando
escolha.
Assim, cada comando caso serve para definir um dos casos possíveis dentro de uma estrutura de
múltipla escolha (escolha).
Note que sem um comando pare a
execução ocorre em cascata a partir do primeiro caso verdadeiro.
No exemplo abaixo, ambas as mensagens são exibidas.
Inicialmente deve-se inserir o comando escolha e depois inserir quantas opções de caso
forem necessárias.
Também deve-se definir a variável inteira que será examinada para decidir em qual caso entrará, como
indicado na figura 1: está escolhendo a variável n como parâmetro para comando escolha.
Fig. 1. Exemplo de uso do 'escolha-caso'.
Depois deve-se definir os valores de cada opção caso, no exemplo indicado na figura 2,
foram definidos apenas duas opções caso, ambas com um único comando subordinado, no primeiro caso
imprimindo-se a cadeia de caracteres (portanto constante) Entou no caso 0 e no segundo
imprimindo-se Entou no caso 1.
Entretanto, se o desejado for entrar apenas no caso com o valor igual ao selecionador, então este
código apresenta uma falha: falta o finalizador pare que impede que, após entrar no
primeiro caso que coincide com o valor de seleção não entre nos demais.
Como neste exemplo a variável n está sempre com o valor inicial 0, o primeiro
caso sempre será verdadeiro, entrando nele e como não tem um
comando de parada, entrará nos demais, portanto sempre imprimindo as duas mensagens.
Fig. 2. Exemplo de uso do 'escolha-caso' sem o comando pare.
Para inserir uma instrução de parada, deve-se utilizar a opção
para inserir pare (e caso)
.
A inserção de um comando de parada está ilustrado na imagem 3.
Fig. 3. Exemplo de uso do 'escolha-caso-pare'.
Abaixo está um código correspondente ao anterior, mas usando o comando pare,
após o último comando subordinado dentro de cada comando caso (no exemplo apenas um).
Assim, após entrar no primeiro caso verdadeiro e executar todos os seus comandos, encontraria um
pare, o que interromperia a execução do escolha-caso,
seguindo para o primeiro comando após o último caso-pare, ou seja, iria para o primeiro comando
após o comando escolha-caso completo.
A figura 4 ilustra esse exemplo, note que em sua execução, após executar o comando subordinado ao
primeiro caso a execução é interrompida, seguindo para o primeiro comando após o
escolha-caso.
Fig. 4. Exemplo de uso do 'escolha-caso-pare'.
O código abaixo é o correspondente textual ao código visual na figura 4 (em Portugol).
Portugol. Código textual correspondente
programa {
funcao vazio inicio ( ) {
inteiro n <- 0
escolha ( n ) {
caso 0 :
escreva("Estou no caso 0", "\n")
pare
caso 1 :
escreva("Estou no caso 1", "\n")
pare
}
escreva("Final de programa", "\n")
}
}