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