In questo tutorial imparerai a creare l'istruzione switch nella programmazione C con l'aiuto di un esempio.
L'istruzione switch ci consente di eseguire un blocco di codice tra molte alternative.
Puoi fare la stessa cosa con la if… else… if
scala. Tuttavia, la sintassi switch
dell'istruzione è molto più facile da leggere e scrivere.
Sintassi di switch … case
switch (expression) ( case constant1: // statements break; case constant2: // statements break;… default: // default statements )
Come funziona l'istruzione switch?
L'espressione viene valutata una volta e confrontata con i valori di ciascuna etichetta del caso.
- Se c'è una corrispondenza, vengono eseguite le istruzioni corrispondenti dopo l'etichetta corrispondente. Ad esempio, se il valore dell'espressione è uguale a costante2, le istruzioni dopo
case constant2:
vengono eseguite finché nonbreak
viene incontrato. - Se non c'è corrispondenza, vengono eseguite le istruzioni di default.
Se non lo usiamo break
, vengono eseguite tutte le istruzioni dopo l'etichetta corrispondente.
A proposito, la default
clausola all'interno switch
dell'istruzione è facoltativa.
switch Diagramma di flusso delle istruzioni
Esempio: semplice calcolatrice
// Program to create a simple calculator #include int main() ( char operator; double n1, n2; printf("Enter an operator (+, -, *, /): "); scanf("%c", &operator); printf("Enter two operands: "); scanf("%lf %lf",&n1, &n2); switch(operator) ( case '+': printf("%.1lf + %.1lf = %.1lf",n1, n2, n1+n2); break; case '-': printf("%.1lf - %.1lf = %.1lf",n1, n2, n1-n2); break; case '*': printf("%.1lf * %.1lf = %.1lf",n1, n2, n1*n2); break; case '/': printf("%.1lf / %.1lf = %.1lf",n1, n2, n1/n2); break; // operator doesn't match any case constant +, -, *, / default: printf("Error! operator is not correct"); ) return 0; )
Produzione
Immettere un operatore (+, -, *,): - Immettere due operandi: 32,5 12,4 32,5 - 12,4 = 20,1
L'operatore - inserito dall'utente viene memorizzato nella variabile operator. Inoltre, due operandi 32,5 e 12,4 sono memorizzati rispettivamente nelle variabili n1 e n2.
Poiché l'operatore è -
, il controllo del programma passa a
printf ("%. 1lf -% .1lf =% .1lf", n1, n2, n1-n2);
Infine, l'istruzione break termina l' switch
istruzione.