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>)".


<< Anterior Pascal Próxima >>