Istruzione switch C ++
UN switchconsente di verificare l'uguaglianza di una variabile rispetto a un elenco di valori. Ogni valore è chiamato caso e la variabile da attivare viene controllata per ogni caso.
Sintassi
La sintassi per a switch l'istruzione in C ++ è la seguente:
switch(expression) {
case constant-expression :
statement(s);
break; //optional
case constant-expression :
statement(s);
break; //optional
// you can have any number of case statements.
default : //Optional
statement(s);
}
Le seguenti regole si applicano a un'istruzione switch:
Il expression utilizzato in a switch deve avere un tipo integrale o enumerato o essere di un tipo di classe in cui la classe ha una singola funzione di conversione in un tipo integrale o enumerato.
È possibile avere un numero qualsiasi di istruzioni case all'interno di uno switch. Ogni caso è seguito dal valore da confrontare e da due punti.
Il constant-expression per un caso deve essere lo stesso tipo di dati della variabile nello switch e deve essere una costante o un valore letterale.
Quando la variabile da attivare è uguale a un caso, le istruzioni che seguono quel caso verranno eseguite fino a quando a break viene raggiunta la dichiarazione.
Quando viene raggiunta un'istruzione break, lo switch termina e il flusso di controllo passa alla riga successiva che segue l'istruzione switch.
Non tutti i casi devono contenere una pausa. Se non appare nessuna rottura, il flusso di controllo sarà cadere attraverso i casi successivi fino al raggiungimento di una pausa.
UN switch l'istruzione può avere un optional defaultcaso, che deve comparire alla fine dell'interruttore. Il caso predefinito può essere utilizzato per eseguire un'attività quando nessuno dei casi è vero. Non è necessaria alcuna interruzione nel caso predefinito.
Diagramma di flusso
Esempio
#include <iostream>
using namespace std;
int main () {
// local variable declaration:
char grade = 'D';
switch(grade) {
case 'A' :
cout << "Excellent!" << endl;
break;
case 'B' :
case 'C' :
cout << "Well done" << endl;
break;
case 'D' :
cout << "You passed" << endl;
break;
case 'F' :
cout << "Better try again" << endl;
break;
default :
cout << "Invalid grade" << endl;
}
cout << "Your grade is " << grade << endl;
return 0;
}
Ciò produrrebbe il seguente risultato:
You passed
Your grade is D