Articolo originale: C Break and Continue Statements – Loop Control Statements in C Explained
Utilizzando il linguaggio di programmazione C, può capitarti di voler cambiare il comportamento di un loop, e le istruzioni continue e break ti aiutano a saltare iterazioni e uscire dal loop in determinate condizioni.
In questo tutorial, imparerai come alterare le strutture di controllo di un programma con le istruzioni break e continue.
Iniziamo.
Come usare break per uscire da un loop in C
In C, se vuoi uscire da un loop quando si verifica una condizione specifica, puoi usare l'istruzione break.
Come tutte le istruzioni in C, anche l'istruzione break deve terminare con un punto e virgola (;).
Prendiamo un esempio per capire come funziona.
Considera il seguente snippet di codice.
#include<stdio.h>
int main()
{
int conteggio = 0;
while(conteggio < 100)
{
printf("Il valore del conteggio è %d \n", conteggio);
conteggio++;
}
return 0;
}In questo esempio, il loop while ripete le istruzioni nel corpo del loop finché conteggio è minore di 100.
Il conteggio parte da 0 e aumenta di 1 a ogni iterazione.
Questo è il flusso normale della struttura di controllo.
Modifichiamolo un po'.
- Prendiamo un intero
num_prefedall'utente. Ipotizziamo chenum_prefesia il numero preferito dell'utente nell'insieme{0, 1, 2, ..., 99}. - Durante ogni iterazione del loop, bisogna verificare se il valore attuale di
conteggiosia uguale anum_prefe. - Vogliamo uscire dal loop quando
conteggioè uguale anum_prefe.
Come possiamo fare?
Dai un'occhiata al seguente snippet di codice:
#include<stdio.h>
int main()
{
// Prende come input il numero preferito dell'utente
int num_prefe;
printf("Inserisci il tuo numero preferito da 0 a 99: ");
scanf("%d", &num_prefe);
int conteggio = 0;
while(conteggio < 100)
{
printf("\nIl valore del conteggio è %d.", conteggio);
if (conteggio == num_prefe)
break;
conteggio++;
}
return 0;
}- Durante ogni iterazione, usiamo
if (conteggio == num_prefe)per controllare seconteggioè uguale anum_prefe. Abbiamo aggiunto un'istruzionebreak;al corpo dell'istruzioneif. - Finché
conteggio ≠ num_prefe, l'istruzionebreak;non viene mai raggiunta. - Quando
conteggioè uguale anum_prefe, l'istruzionebreak;viene attivata e usciamo dal loop. - Il controllo adesso raggiunge la prima istruzione fuori dal loop.
Qui sotto puoi vedere un output di esempio:

Nota che usciamo dal loop una volta che il conteggio raggiunge 3, che in questo caso è num_prefe.
Nella prossima sezione, vedremo un altro esempio per consolidare questo concetto.
Esempio di istruzione break in C
▶ Considera il seguente esempio:
A[10]è un array di 10 interi ed è inizializzato con degli zeri.- Vogliamo prendere gli elementi dell'array
Ada un utente e calcolare la somma degli elementi nell'array. - Tuttavia, vogliamo che ogni elemento di
Anon sia più grande di20. - Una volta che l'utente inserisce un numero maggiore di 20, vogliamo terminare il loop. È qui che l'istruzione
break;torna utile.
Guarda il seguente snippet di codice, che fa esattamente questo.
#include <stdio.h>
int main()
{
int A[10] = {0};
int somma = 0;
for(int i = 0; i < 10; i++)
{
printf("Inserisci un numero: ");
scanf("%d",&A[i]);
if (A[i] > 20)
break;
somma += A[i];
}
printf("Somma: %d",somma);
return 0;
}
sommaè inizializzata a0.- In ogni passaggio del loop, l'utente deve inserire un numero, che viene aggiunto al valore corrente di
somma. - Se l'utente inserisce un numero maggiore di 20, usciamo dal loop.

Nota come il loop termina una volta che l'utente inserisce un numero maggiore di 20 – in questo caso 21. La somma degli altri due numeri (2 e 3) viene stampata sulla console.
Se hai mai utilizzato delle istruzioni switch in C, è probabile che tu abbia usato l'istruzione break; per uscire dalla scaletta dei case non appena viene riscontrata una corrispondenza con l'etichetta del case.
In ogni caso, lo scopo di questo tutorial è mostrare il modo di utilizzare le istruzioni break; e continue; per cambiare il comportamento di un loop.
Come usare continue per saltare delle iterazioni in C
In C, se vuoi saltare delle iterazioni quando si verifica una specifica condizione, puoi usare un'istruzione continue.
A differenza dell'istruzionebreak, l'istruzionecontinuenon causa l'uscita dal loop. Invece, salta solo le iterazioni per cui la condizione è vera.
Una volta che l'istruzione continue; viene attivata, le istruzioni nel resto del loop vengono saltate e il loop passa all'iterazione successiva.
Esempio di istruzione continue in C
Usiamo l'esempio della sezione precedente, modificandolo un po'.
Diciamo che non vogliamo uscire dal loop quando l'utente inserisce un numero maggiore di 20. Piuttosto, vogliamo ignorare questi specifici input e calcolare la somma degli altri numeri nell'array A.
- Supponiamo che l'utente inserisca 10 numeri, 1 dei quali maggiore di 20.
- Il nostro codice dovrebbe calcolare e mostrare la somma dei restanti 9 numeri.
Come possiamo fare?
Possiamo usare l'istruzione continue; per saltare solo le iterazioni per cui l'input dell'utente è maggiore di 20. 🙂Guarda il codice qui sotto:
#include <stdio.h>
int main()
{
int A[10] = {0};
int somma = 0;
for(int i = 0; i < 10; i++)
{
printf("Inserisci un numero: ");
scanf("%d",&A[i]);
if (A[i] > 20)
continue;
somma += A[i];
}
printf("Somma: %d", somma);
return 0;
}Nell'output puoi vedere che il primo input è 21, che è maggiore di 20.
Tuttavia, il loop compie dieci iterazioni. E se sei pronto un altro rapido esercizio, puoi verificare che la somma degli altri numeri (2, 3, 5, 4, 7, 15, 14, 2 e 5) fa proprio 57. ✅

Conclusione
In questo tutorial, hai imparato come usare le istruzioni break; e continue; per controllare i loop in C.
Ricapitolando, abbiamo visto:
- Come uscire da un loop in base a delle condizioni specifiche con l'istruzione
break;. - Come saltare delle iterazioni in base a delle condizioni specifiche con l'istruzione
continue;.
Spero che tu abbia trovato utile questo tutorial. Buona programmazione! 😄