English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo tutorial, imparerai a creare espressioni switch nel linguaggio di programmazione C.
La sintassi switch ci permette di eseguire uno dei vari blocchi di codice disponibili.
Anche se puoi utilizzare if...else..if per eseguire la stessa operazione in modo阶梯, la sintassi del switch è più facile da leggere e scrivere.
switch (expression) { case constant1: // Statement break; case constant2: // Statement break; . . . default: // Statement di default }
Come funziona la statement switch?
L'espressione (expression) viene valutata una volta e confrontata con il valore di ogni tag case.
Se c'è una corrispondenza, viene eseguita la statement successiva al tag di corrispondenza. Ad esempio, se il valore dell'espressione è uguale a constant2, viene eseguita la statement successiva a case constant2: fino a quando non si incontra break.
Se non c'è corrispondenza, viene eseguita la statement default (default).
Se non si utilizza break, verranno eseguite tutte le statement successive al tag di corrispondenza.
A proposito, la clause default della statement switch è opzionale.
// Creazione di un semplice calcolatore #include <stdio.h> int main() { char operator; double n1, n2; printf("Inserisci un operatore (+, -, *, /): "); scanf("%c", &operator); printf("Inserisci due operandi: "); 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; // Non è stato trovato alcun operatore corrispondente (+, -, *, /) default: printf("Errore! Operatore non corretto"); } return 0; }
Risultato di output
Inserisci un operatore (+, -, *, /): - Inserisci due operandi: 32.5 12.4 32.5 - 12.4 = 20.1
L'operatore di calcolo immesso dall'utente (-) è memorizzato nella variabile operator. Inoltre, i due operandi 32.5 e 12.4 sono rispettivamente memorizzati nelle variabili n1 e n2.
Poiché operator è -, il controllo del programma salta alla frase
printf("%.1lf - %.1lf = %.1lf", n1, n2, n1-n2);
Infine,Estratto breakTermina questa istruzione switch, completato l'operazione.