Dichiarazione Pascal Case

L'hai osservato if-then-elsele dichiarazioni ci consentono di attuare più decisioni in un programma. Ciò può essere ottenuto anche utilizzando ilcase dichiarazione in modo più semplice.

Sintassi

La sintassi dell'istruzione case è:

case (expression) of
   L1 : S1;
   L2: S2;
   ...
   ...
   Ln: Sn;
end;

Dove, L1, L2... sono etichette maiuscole o valori di input, che possono essere numeri interi, caratteri, elementi di dati booleani o enumerati. S1, S2, ... sono istruzioni Pascal, ciascuna di queste istruzioni può avere una o più etichette di case associate. L'espressione è chiamatacase selector o il case index. L'indice del caso può assumere valori che corrispondono alle etichette del caso.

L'istruzione case deve sempre avere un'estensione end dichiarazione ad esso associata.

Le seguenti regole si applicano a una dichiarazione del caso:

  • L'espressione utilizzata in un'istruzione case deve avere un tipo integrale o enumerato oppure essere di un tipo di classe in cui la classe ha una singola funzione di conversione in un tipo integrale o enumerato.

  • Puoi avere un numero qualsiasi di dichiarazioni di caso all'interno di un caso. Ogni caso è seguito dal valore da confrontare e da due punti.

  • L'etichetta case per un case deve essere lo stesso tipo di dati dell'espressione nell'istruzione case e deve essere una costante o un valore letterale.

  • Il compilatore valuterà l'espressione case. Se uno dei valori dell'etichetta del caso corrisponde al valore dell'espressione, viene eseguita l'istruzione che segue questa etichetta. Dopodiché, il programma continua dopo la fine finale.

  • Se nessuna delle etichette case corrisponde al valore dell'espressione, viene eseguito l'elenco di istruzioni dopo la parola chiave else o else. Può essere un elenco di istruzioni vuoto. Se nessun'altra parte è presente e nessuna costante del caso corrisponde al valore dell'espressione, il flusso del programma continua dopo la fine finale.

  • Le istruzioni case possono essere istruzioni composte (cioè un blocco Begin ... End).

Diagramma di flusso

Esempio

L'esempio seguente illustra il concetto:

program checkCase;
var
   grade: char;
begin
   grade := 'A';

   case (grade) of
      'A' : writeln('Excellent!' );
      'B', 'C': writeln('Well done' );
      'D' : writeln('You passed' );
      'F' : writeln('Better try again' );
   end;     
   
   writeln('Your grade is  ', grade );
end.

Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:

Excellent!
Your grade is A