Curso de Pascal
Case Of
Você está em: MarMSX >> Cursos >> Pascal
Tanto o Pascal como o C apresentam uma estrutura diferente para realizar múltiplos testes lógicos. No Pascal esta estrutura chama-se CASE, e no C chama-se SWITCH.
O objetivo do CASE é realizar uma série de testes lógicos em cima de uma variável, substituindo uma série de IFs que fariam semelhante tarefa.
Sintaxe:
case variável of
valor1 : expressão;
valor2 : expressão;
...
valorn: expressão;
else
expressão;
end;
A expressão é o tratamento dado, caso o valor de teste seja aquele antes da expressão. Caso a expressão possua mais uma linha código, deverá ser delimitada pelo begin e end.
Exemplo:
var scr : integer;
begin
write('Entre com o número da screen do MSX 1: ');
readln(scr);
case scr of
0 : writeln('Modo texto, 40 ou 80 colunas');
1 : writeln('Modo texto, 32 colunas');
2 : writeln('Modo gráfico, 256x192 pontos e 16 cores');
3 : writeln('Modo gráfico, 256x192 pontos e 16 cores');
else
writeln('Não conheço essa screen do MSX 1');
end;
end.
O "valor" também pode composto por faixas seqüenciais ou diversos valores. Ex:
var a : integer;
begin
write('Escreva um numero: ');
readln(a);
case a of
1..10 : writeln('O seu número varia de 1 a 10');
11, 14, 15 : writeln('O seu número é 11, 14 ou 15');
else
writeln('Numero fora da faixa');
end;
end.
Outro exemplo utilizando strings:
var cidade : string;
begin
write('Qual sua cidade de origem ? ');
readln(cidade);
case cidade of
'RIO' : writeln('Carioca');
'SAMPA' : writeln('Paulistano');
'MINAS' : writeln('Mineiro');
else;
writeln('Você é de(a): ', cidade); { Não é de nenhuma das três cidades acima }
end;
end.
Saída:
Qual sua cidade de origem ? RIO
Carioca
O tratamento do case pode ser complexo, ou seja, com mais de uma expressão. Nesse caso, as expressões deverão ser acompanhadas dos limitadores do Pascal begin e end. Exemplo:
var idade, serie : integer;
faculdade : string;
begin
write('Qual a sua idade ? ');
read(kbd, idade);
case idade of
1..17 : begin
write('Qual a série ? ');
read(kbd, serie);
end;
18..23 : begin
write('Qual a faculdade ? ');
read(kbd, faculdade);
end;
end;
end.
Saída:
Qual sua idade ? 19
Qual a sua faculdade? Engenharia
Obs: Caso esteje utilizando o Turbo Pascal 2, utilize o comando "read(kbd, <var>)" para ler dados do teclado. Já no Turbo Pascal 3.3f e no PC, prefira o comando "readln(<var>)".