Rozhodování CASE, cyklus REPEAT–UNTIL

Pokud je potřeba rozhodnout mezi více možnostmi, nebývá vhodné používat příkaz Ifthen. Pro tyto případy existuje v pascalu podmínka Case:
Case podmínka of
Hodn1: Příkaz;
Hodn2: Příkaz;
else Příkaz;
end;

Např.:
Case i of
1: WriteLn('Jedna');
2: WriteLn('Dva');
end;

Case Ch of
'A': WriteLn('Ano');
'N': WriteLn('Ne');
else WriteLn('Nevím');
end;

Pro opakování nějaké činnosti do splnění podmínky je v Pascalu vhodné používat cyklus. Existuje cyklus s podmínkou na začátku (While) a cyklus s podmínkou na konci:
Repeat
Příkazy;
Until podmínka;
Opakuje příkazy dokud není splněna podmínka.

Repeat
WriteLn('Stiskni [Escape]!');
Until Readkey=#27;

Repeat Until KeyPressed; {Čeká na stisk libovolné klávesy}

Příklad:
Program Kalkulacka;
{                    Kalkulacka I
                 Case, Repeat - Until   }

 Uses
  Crt;                        { Práce s obrazovkou a klávesnicí }
 Var
  A, B : Real;                { Čísla           }
  Oper : Char;                { Operace         }
  Binar: Set of Char;         { Binární operace }
 Begin
  ClrScr;
  WriteLn('Kalkulacka');      { Hlavička }
  WriteLn('~~~~~~~~~~');
  WriteLn('Cislo [Enter]');
  WriteLn('operace');
  WriteLn('cislo [Enter]');    { Nápověda }
  WriteLn;
  Binar:= ['+','-','*','/'];   { Množina bin. operací }
  Readln( A );                 { Načíst číslo }

  Repeat                       { Opakuj..}
   Oper:= ReadKey;             {    Načíst operaci }
   Oper:= UpCase( Oper );      {    Převést na velká písmena }
   WriteLn( Oper );            {    Vypsat na obrazovku }
   If Oper<>#27 then           {    Pokud není [Esc]...}
   Begin
    If Oper in Binar then      {       Pokud je operace binární }
     Readln( B );              {       načti druhé číslo }
    Case Oper of
     '+': A:= A+B;
     '-': A:= A-B;
     '*': A:= A*B;
     '/': A:= A/B;
     'S': A:= Sqrt( A );
    end;
    WriteLn( 'Vysledek: ', A:5:3 );
   end;                        {    Oper<>[Esc] }
  Until Oper=#27;              { ..dokud není operace=[Esc] }
 End.