Costrutto condizione doppia (Switch – case)

In questa lezione parleremo del costrutto a condizione doppia, meglio conosciuto come switch – case in C. (Clicca qui per il pdf della lezione)

Il costrutto a condizione doppia, in funzione dei valori dell’espressione (condizione), vuole eseguire azioni diverse. Il diagramma a blocchi corrispondente è il seguente:

La utilizziamo per compattare la struttura condizionale semplice di if annidati.


switch (espressione) //Per espressione si intende anche una variabile
{
	case 1:
	//azione
         break; //se non mettiamo il break, il programma esegue tutti i case 
	
	case 2;
	//azione
	 break;

	default: //se nessuno dei casi sopra elencati è valido
	//azione
}

Il seguente programma è una semplice calcolatrice con il costrutto a condizione doppia:


#include <stdio.h>

int main()
{
	int op1, op2; //I due numeri con cui eseguire le operazioni
	char oper; //operando + - * /
	int ris; //risultato
	
	printf("Inserisci i due numeri con i quali eseguire le operazioni");
	scanf("%d, %d", &op1, &op2);
	printf("Inserisci l'operando");
	scanf("%c", &oper);

	switch (oper) 
	{
		case '+': //Gli apici singoli identificano un carattere
			ris = op1 + op2;
		break; //se non mettiamo il break, il programma esegue tutti i case 
		
		case '-':
			ris = op1 - op2;
		break; 

		case '*':
			ris = op1 * op2;
		break;

		case '/':
			ris = op1 / op2;
		break;

		default: 
			printf("ATTENZIONE, Inserisci un operando valido");
	}
	printf ("Il risultato di %d %c %d e' = a %d", op1, oper, op2, ris);
	return 0;
}

In C, il valore vero è ≠ 0 mentre il valore falso è = 0.

int a = 5;

if (a == 3) //falso, si esce dall'if il valore della condizione è 0

if (a = 3) //vero, si entra nell'if perchè il valore dell'espressione è != 0 (in questo caso 3), quindi vero

if (a){ azione } //se a è diverso da 0, entra nell'if, altrimenti no

Per espressione intendiamo: una qualsiasi forma che valutata, dia un valore.

La condizione è un’espressione relazionale che ha solo due risultati: vero o falso. Le espressioni invece hanno infiniti risultati. Anche l’assegnamento è un’espressione.

— Clicca qui per scaricare il pdf della lezione