Proponiamo degli esercizi con l’istruzione switch case in C++, al fine di assimilare bene il funzionamento di questo costrutto.

Ricordiamo che il costrutto switch consente una selezione a più vie, cioè una selezione multipla.

Esercizio 1 con switch case in C++

Uno degli esercizi con switch case in C++ che vi voglio proporre è quello già spiegato in questo tutorial:

https://www.codingcreativo.it/esercizio-con-if-else-in-c/

ma affrontato utilizzando gli if…else.

Svolgiamolo adesso utilizzando l’istruzione switch case.

Dunque riportiamo il testo dell’esercizio per comodità.

Su una linea ferroviaria, rispetto alla tariffa piena, i pensionati usufruiscono di uno sconto del 10%, gli studenti del 15% e infine i disoccupati del 25%.
Allora, codificando i pensionati con una P, gli studenti con una S e i disoccupati con una D, scrivere un programma che, richiesto il costo di un biglietto e l’eventuale condizione dell’utente, visualizzi l’importo da pagare.

Innanzitutto dichiaro due variabili, una di tipo char per la categoria e una di tipo float che contiene il prezzo del biglietto.

Dopo valuto categoria, se è uguale a P, eseguo quello che c’è dopo i due punti, altrimenti valuto se categoria è uguale ad S, e così via.

N.B. Ho scritto la notazione abbreviata costo*=0.9.

Potevamo anche utilizzare costo-=costo*0.1;

O in forma più ‘rudimentale’ costo=costo-costo*0.1.

Allego quindi il listato completo dell’esercizio sviluppato con switch case in C++.

#include<iostream>
using namespace std;

int main() {	
	char categoria;
	float costo;
	
	cout << "Inserisci la categoria:\ncategoria P = pensionati, S = studenti, D = disoccupati):\t ";
	cin >> categoria ;
	cout << "prezzo biglietto:\t ";
	cin >> costo;
	
	switch (categoria) {
		case 'P': costo *= 0.9;
		break;
		case 'S': costo *= 0.85;
		break;
		case 'D': costo *= 0.75;
		break;
		default: cout << "paghi il prezzo intero" << endl;	
	}
	
	cout << "Pagherai : \t" << costo << endl;
	return 0;
}

Esercizio 2

Il secondo degli esercizi con switch case in C++ che voglio proporvi è molto semplice.

Realizzare un programma, utilizzando lo switch case, che legga in input un voto rappresentato da un carattere tra A ed E e ne stampi il significato.

Ad esempio:

A significa ottimo;

B significa distinto;

C significa discreto;

D significa sufficiente;

E significa insufficiente.

Ecco quindi il listato completo dell’esercizio proposto.

#include <iostream>
using namespace std;

int main () { 
	char voto;
	string significato;
	cout << "Qual e' il voto (A, B, C, D o E)?"<<endl;
	cin >> voto;
	int errore = 0;

	switch (voto) {
		case 'A': significato = "ottimo";
		break;
		case 'B': significato = "distinto";
		break;
		case 'C': significato = "discreto";
		break;
		case 'D': significato = "sufficiente";
		break;
		case 'E': significato = "insufficiente";
		break;
		default: cout << "Errore! Voto sbagliato! Rifare!" << endl;
		errore = 1;
	}
	if (errore == 0)
	     cout << "Il voto '"<<voto<<"' significa \t" << significato << "."<< endl;
	return 0;
	}

Chiaramente questi sono solo dei semplicissimi esercizi con switch case in C++.

Alcuni link utili:

Indice argomenti linguaggio C++

1- Introduzione al linguaggio C++

2- Variabili in C++

3- Operatori di assegnazione in C++

4- Esempi in C++

5- Casting in C++

Successione di Fibonacci in C++