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_prefe
dall'utente. Ipotizziamo chenum_prefe
sia il numero preferito dell'utente nell'insieme{0, 1, 2, ..., 99}
. - Durante ogni iterazione del loop, bisogna verificare se il valore attuale di
conteggio
sia 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
A
da un utente e calcolare la somma degli elementi nell'array. - Tuttavia, vogliamo che ogni elemento di
A
non 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'istruzionecontinue
non 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! 😄