In questo tutorial, impareremo l'istruzione switch e il suo funzionamento nella programmazione C ++ con l'aiuto di alcuni esempi.
L' switchistruzione ci consente di eseguire un blocco di codice tra molte alternative.
La sintassi switchdell'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 expressionviene valutata una volta e confrontati con i valori di ciascuna caseetichetta.
- 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ébreaknon viene rilevata l' istruzione. - Se non c'è corrispondenza,
default:viene eseguito il codice dopo .
Nota : possiamo fare la stessa cosa con la if… else… ifscala. Tuttavia, la sintassi switchdell'istruzione è più pulita e molto più facile da leggere e scrivere.
Diagramma di flusso dell'istruzione switch
Diagramma di flusso dell'interruttore C ++ … istruzione case
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… caseistruzione 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
charvariabile denominata oper. - Chiediamo quindi all'utente di inserire due numeri, che vengono memorizzati nelle variabili float num1 e num2.
- L'
switchistruzione 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' breakistruzione viene utilizzata all'interno di ogni caseblocco. Ciò termina l' switchistruzione.
Se l' breakistruzione non viene utilizzata, casevengono eseguiti tutti i casi dopo la corretta .








