Imparare a programmare in C++ – #6 – Break e Continue

Imparare a programmare in C++ – #6 – Break e Continue

Imparare a programmare in C++ – #6 – Break e Continue: Queste due istruzioni permettono di uscire anticipatamente da un ciclo al verificarsi di una determinata condizione.

Tempo di lettura stimato: 5 minuti

Imparare a programmare in C++ – #6 – Break e Continue

Le istruzioni break; e continue; inserite all’interno di un ciclo for o while permettono di uscire anticipatamente da quel ciclo.

Break

L’istruzione break permette di uscire completamente dal loop e passare alle istruzioni successive.

L’utilizzo di un break all’interno di un loop interrompe qualsiasi operazione successiva al suo interno ed ignora le condizioni che portano al ripetersi del loop.

Quindi quando si inserisce un istruzione break in un loop il programma esce da quel loop.

Continue

L’istruzione continue funziona in modo simile al break ma con una sostanziale differenza, cioè viene ignorato solo quel ciclo del loop, ma si rimane all’interno.

Quindi ad esempio se abbiamo un loop ripetuto 20 volte, ma alla 10 volta viene seguita l’istruzione continue, quell’iterazione verrà ignorata e si passerà all’11.

Quando usare Break e quando usare Continue

Abbiamo visto che break e continue interrompono entrambi il loop, quindi andremo ad usare break quando vogliamo uscire completamente dal loop ed useremo continue quando vogliamo saltare solo alcune iterazioni del loop ma proseguire fino al suo ciclo completo.

Se ad esempio inserissi un loop che mostra i numeri da 1 a 9:

// BREAK E CONTINUE
#include <iostream>
using namespace std;

int main() {
	
	for (int a = 0; a < 10 ; a++)
	{
	cout << a << endl;	
	}
	cout << "Termine del programma." << endl;
	
	return 0;
}

aggiungendo un controllo sul numero 5 con il break avrei:

// BREAK E CONTINUE
#include <iostream>
using namespace std;

int main() {
	
	for (int a = 0; a < 10 ; a++)
	{
		if (a == 5)
		{
			break;
		}
	cout << a << endl;	
	}
	cout << "Termine del programma." << endl;
	
	return 0;
}

e in output avrei quindi:

0
1
2
3
4
Termine del programma.

Usando invece il continue:

// BREAK E CONTINUE
#include <iostream>
using namespace std;

int main() {
	
	for (int a = 0; a < 10 ; a++)
	{
		if (a == 5)
		{
			continue;
		}
	cout << a << endl;	
	}
	cout << "Termine del programma." << endl;
	
	return 0;
}

avrei in output:

0
1
2
3
4
6
7
8
9
Termine del programma.

ESERCIZIO 1: Continue

Creiamo un programma che permetta all’utente di inserire 10 numeri.

Per ogni numero inserito il programma controllerà se il numero è pari o dispari.

Nel caso in cui fosse pari verrebbe sommato ai numeri precedenti.

Nel caso in cui fosse dispari verrebbe ignorato.

Per questo esercizio utilizzare il ciclo For e l’istruzione Continue.

SUGGERIMENTO – Come controllare se un numero è pari in C++

Per controllare se un numero è pari bisogna controllare se è divisibile per 2 e per farlo possiamo scrivere (Variabile % 2 == 0):

int NumeroInserito;
	cout << "Inserisci un numero:" << endl;
	cin >> NumeroInserito;
	if (NumeroInserito % 2 == 0)
	{
		cout << "Il numero e' pari.";
	}
	else
	{
		cout << "Il numero e' dispari.";
	}

possiamo anche verificare che un valore non sia pari sostituendo == con !=

int NumeroInserito;
	cout << "Inserisci un numero:" << endl;
	cin >> NumeroInserito;
	if (NumeroInserito % 2 != 0)
	{
		cout << "Il numero e' dispari.";
	}
	else
	{
		cout << "Il numero e' pari.";
	}

Mostra la soluzione

#include <iostream>
using namespace std;

int main() {
	//NumeroInserito è la variabile di input dell'utente
	// NumeroTotale è la variabile in cui sommare i valori
	int NumeroInserito, NumeroTotale;
	for (int a = 0; a < 10; a++)
	{
		cout << "Inserisci un numero:" << endl;
		cin >> NumeroInserito;
/* In questo esempio usiamo diverso da 0 e non uguale a 0, altrimenti avremmo reso inutile
 l'utilizzo del continue.
Infatti con uguale a 0 avremmo dovuto inserire la somma nell,'if o lasciare vuoto il campo.
*/
		if (NumeroInserito % 2 != 0)
		{
			continue;
		}
		NumeroTotale = NumeroTotale + NumeroInserito;
		
	}
	cout << "Il valore totale e': " << NumeroTotale;
	return 0;
}

ESERCIZIO 2: Break

Per il break crea un gioco che moltiplica 2 valori, il primo valore viene generato utilizzando un contatore, partendo da 1 va ad incrementare ad ogni ciclo.

Il secondo valore invece è fisso e viene inserito all’inizio (puoi usare ad esempio 10).

Utilizzando un ciclo While, chiedi all’utente di risolvere la moltiplicazione.

Controlla quindi se il valore inserito dall’utente corrisponde a quello reale, se corrisponde può continuare a giocare, se dovesse essere sbagliato esci dal loop e concludi il gioco.

Per questo esercizio utilizzare il ciclo While e l’istruzione Break.

Mostra soluzione

#include <iostream>
using namespace std;

int main() {
int Contatore = 1;
int ValoreFisso = 10;
int RispostaUtente, RisultatoReale;

while (Contatore <= 50)
{
	cout << "quanto fa " << Contatore << " x " << ValoreFisso << " ?" << endl;
	RisultatoReale = Contatore * ValoreFisso;
	cin >> RispostaUtente;
	if (RispostaUtente != RisultatoReale)
	{
		break;
	}
	cout << "OTTIMO! Passiamo alla domanda successiva." << endl;
	Contatore++;
}
cout << "FINE DEL GIOCO!";
 return 0;
}

Video

Claudio Masci

Sono innanzitutto un appassionato di informatica e tecnologia in generale. Lavoro in ambito informatico da circa 16 anni, spaziando in diversi campi, andando dalla programmazione web, allo sviluppo di software, dalla grafica alla modellazione 3d ed al video editing, ho sempre voluto approfondire ogni aspetto e questo mi ha permesso di lavorare in diversi ambiti informatici.

Rispondi