Selezioni multiple

L’istruzione di controllo Case () Of si utilizza se

  • i blocchi dipendono tutti dalla stessa espressione
  • l’espressione è intera (carattere/logica)
  • i blocchi sono numerosi…
Algoritmo Traduzione Istruzioni singole
if3n2
Writeln('0');

Case(E) Of
   1: Begin
         Writeln('-11-');
         Writeln('-12-');
      End;
   2: Begin
         Writeln('-21-');
         Writeln('-22-');
      End;
   ...
   ...
   n: Begin
         Writeln('-n1-');
         Writeln('-n2-');
      End;
End;

Writeln('n+1');
Writeln('0');

Case(E) Of
   1:  Writeln('-1-');
   2:  Writeln('-2-');
   ...
   ...
   n:  Writeln('-n-');
End;

Writeln('n+1');
if3n
Writeln('0');

Case(E) Of
   1: Begin
         Writeln('-11-');
         Writeln('-12-');
      End;
   2: Begin
         Writeln('-21-');
         Writeln('-22-');
      End;
   ...
   ...
   Else
      Begin
         Writeln('-n1-');
         Writeln('-n2-');
      End;
End;

Writeln('n+1');
Writeln('0');

Case(E) Of
   1:  Writeln('-1-');
   2:  Writeln('-2-');
   ...
   ...
   Else
       Writeln('-n-');
End;

Writeln('n+1');

Le scelte possono essere raggruppate

Algoritmo Traduzione Istruzioni singole
if3n2
Writeln('0');

Case(E) Of
   1..5:
      Begin
         Writeln('-11-');
         Writeln('-12-');
      End;
   15, 25:
      Begin
         Writeln('-21-');
         Writeln('-22-');
      End;
   ...
   ...
   6..10, 20,30:
      Begin
         Writeln('-n1-');
         Writeln('-n2-');
      End;
End;

Writeln('n+1');
Writeln('0');

Case(E) Of
   1..5:
      Writeln('-1-');
   15, 25:
      Writeln('-2-');
   ...
   ...
   6..10, 20,30:
      Writeln('-n-');
End;

Writeln('n+1');
if3n
Writeln('0');

Case(E) Of
   1..5:
      Begin
         Writeln('-11-');
         Writeln('-12-');
      End;
   15, 25:
      Begin
         Writeln('-21-');
         Writeln('-22-');
      End;
   ...
   ...
   Else
      Begin
         Writeln('-n1-');
         Writeln('-n2-');
      End;
End;

Writeln('n+1');
Writeln('0');

Case(E) Of
   1..5:
      Writeln('-1-');
   15, 25:
      Writeln('-2-');
   ...
   ...
   Else
      Writeln('-n-');
End;

Writeln('n+1');