In questo tutorial, impareremo l'istruzione switch e il suo funzionamento nella programmazione C ++ con l'aiuto di alcuni esempi.
L' switch
istruzione ci consente di eseguire un blocco di codice tra molte alternative.
La sintassi switch
dell'istruzione in C ++ è:
switch (expression) ( case constant1: // code to be executed if // expression is equal to constant1; break; case constant2: // code to be executed if // expression is equal to constant2; break;… default: // code to be executed if // expression doesn't match any constant )
Come funziona l'istruzione switch?
La expression
viene valutata una volta e confrontati con i valori di ciascuna case
etichetta.
- Se c'è una corrispondenza, viene eseguito il codice corrispondente dopo l'etichetta corrispondente. Ad esempio, se il valore della variabile è uguale a
constant2
, il codice successivocase constant2:
viene eseguito finchébreak
non viene rilevata l' istruzione. - Se non c'è corrispondenza,
default:
viene eseguito il codice dopo .
Nota : possiamo fare la stessa cosa con la if… else… if
scala. Tuttavia, la sintassi switch
dell'istruzione è più pulita e molto più facile da leggere e scrivere.
Diagramma di flusso dell'istruzione switch

Esempio: creare una calcolatrice utilizzando l'istruzione switch
// Program to build a simple calculator using switch Statement #include using namespace std; int main() ( char oper; float num1, num2; cout <> oper; cout << "Enter two numbers: " <> num1>> num2; switch (oper) ( case '+': cout << num1 << " + " << num2 << " = " << num1 + num2; break; case '-': cout << num1 << " - " << num2 << " = " << num1 - num2; break; case '*': cout << num1 << " * " << num2 << " = " << num1 * num2; break; case '/': cout << num1 << " / " << num2 << " = " << num1 / num2; break; default: // operator is doesn't match any case constant (+, -, *, /) cout << "Error! The operator is not correct"; break; ) return 0; )
Uscita 1
Immettere un operatore (+, -, *, /): + Immettere due numeri: 2,3 4,5 2,3 + 4,5 = 6,8
Uscita 2
Immettere un operatore (+, -, *, /): - Immettere due numeri: 2,3 4,5 2,3 - 4,5 = -2,2
Uscita 3
Immettere un operatore (+, -, *, /): * Immettere due numeri: 2,3 4,5 2,3 * 4,5 = 10,35
Uscita 4
Immettere un operatore (+, -, *, /): / Immettere due numeri: 2,3 4,5 2,3 / 4,5 = 0,511111
Uscita 5
Immettere un operatore (+, -, *, /):? Immettere due numeri: 2.3 4.5 Errore! L'operatore non è corretto.
Nel programma sopra, stiamo usando l' switch… case
istruzione per eseguire addizioni, sottrazioni, moltiplicazioni e divisioni.
Come funziona questo programma
- Per prima cosa chiediamo all'utente di inserire l'operatore desiderato. Questo input viene quindi memorizzato nella
char
variabile denominata oper. - Chiediamo quindi all'utente di inserire due numeri, che vengono memorizzati nelle variabili float num1 e num2.
- L'
switch
istruzione viene quindi utilizzata per verificare l'operatore inserito dall'utente:- Se l'utente entra
+
, viene eseguita l'aggiunta sui numeri. - Se l'utente inserisce
-
, la sottrazione viene eseguita sui numeri. - Se l'utente entra
*
, la moltiplicazione viene eseguita sui numeri. - Se l'utente entra
/
, la divisione viene eseguita sui numeri. - Se l'utente immette un altro carattere, viene stampato il codice predefinito.
- Se l'utente entra
Si noti che l' break
istruzione viene utilizzata all'interno di ogni case
blocco. Ciò termina l' switch
istruzione.
Se l' break
istruzione non viene utilizzata, case
vengono eseguiti tutti i casi dopo la corretta .