CodeGym /Corsi /JAVA 25 SELF /Controllo del ciclo: gli operatori break e continue

Controllo del ciclo: gli operatori break e continue

JAVA 25 SELF
Livello 4, Lezione 4
Disponibile

1. Introduzione

Capita spesso che non sia necessario eseguire tutte le iterazioni di un ciclo fino alla fine, ma che occorra uscirne in anticipo — ad esempio, non appena trovi l’elemento cercato. In altri casi bisogna saltare parte del lavoro e passare al passo successivo (per esempio, hai letto i dati e vuoi saltarne l’elaborazione). Questo è il controllo del flusso all’interno di un ciclo.

Gli operatori break e continue in Java servono proprio a questo. Vediamo come funzionano e a cosa tornano utili nei casi reali.

2. Operatore break: «Stop, macchina!»

Teoria e sintassi

L’operatore break si usa per uscire immediatamente da un ciclo, ovunque tu sia nel suo corpo. Non appena l’esecuzione del programma raggiunge break, il ciclo termina subito e l’esecuzione prosegue dalla prima riga di codice dopo il ciclo.


while (uslovie)
{
    if (kakoe-to_uslovie)
    {
        break;
    }
    // il resto del codice del ciclo
}
Uso di break nel ciclo while

Lo stesso vale per for e per do-while:

for (int i = 0; i < 10; i++)
{
    if (kakoe-to_uslovie)
    {
        break;
    }
    // il resto del codice del ciclo
}

Esempio 1: verifica della primalità di un numero

Un numero è primo se è divisibile solo per 1 e per se stesso. Dobbiamo verificare la primalità di un numero: controllare tutti i potenziali divisori da 2 a n-1. Se risulta che il nostro numero è divisibile per un divisore, non ha senso continuare — il numero non è primo! Possiamo terminare il ciclo.

Esempio:

int number = 111;
boolean found = false;
for (int i = 2; i < number; i++)
{
    if (number % i == 0)
    {
        found = true;
        System.out.println("Trovato un divisore " + i );
        break; // Fermiamo il ciclo, non c'è più niente da cercare!                
    }    
}

if (!found)
{
    System.out.println("Nessun divisore trovato - il numero è primo.");
}

Esempio 2: validazione dell’input dell’utente

Scriviamo una piccola applicazione, ad esempio un questionario interattivo per la raccolta dei dati:

while (true)
{
    System.out.print("Inserisci la tua età: ");

    if (console.hasNextInt())
    {
        int age = console.nextInt();
        if (age > 0)
        {
            System.out.println("Ottimo! La tua età: " + age);
            break; // dati corretti — usciamo
        }
        else
        {
            System.out.println("Errore! Inserisci un'età positiva.");
        }
    }
    else
    {
        System.out.println("Errore! Inserisci un numero.");
        console.nextLine(); // scartiamo l'input non valido
    }
}

Perché serve:
A volte è necessario far girare il ciclo all’infinito (o per molto tempo), finché l’utente non inserisce dati corretti. Non appena si verifica l’evento che ci soddisfa — applichiamo break e usciamo definitivamente dal ciclo.

3. Operatore continue: «Il prossimo, per favore!»

Teoria e sintassi

A differenza di break, l’operatore continue non termina l’intero ciclo, ma interrompe l’iterazione corrente: tutto ciò che è scritto dopo continue nel corpo del ciclo NON viene eseguito — si passa all’iterazione successiva.


for (int i = 0; i < 10; i++)
{
    if (uslovie)
    {
        continue;
    }
    // questa parte verrà eseguita solo se continue non è scattato
}
Uso di continue nel ciclo for

Esempio 3: saltare i numeri pari

Immagina di dover stampare solo i numeri dispari di un intervallo. Quelli pari vanno saltati.


for (int i = 1; i <= 10; i++)
{
    if (i % 2 == 0)
    {
        continue; // se il numero è pari — saltiamo tutto ciò che segue!
    }
    System.out.println("Numero dispari: " + i);
}
Saltare i numeri pari con continue

Cosa succede:
Quando i = 2, 4, 6... il ciclo incontra continue e passa subito all’iterazione successiva, senza eseguire System.out.println.

Visualizzazione passo per passo:

i i % 2 == 0 Azione
1 false stampa, nessun continue
2 true continue, nessuna stampa
3 false stampa, nessun continue
... ... ...

Gli operatori break e continue sono usati molto spesso. Praticamente in un ciclo su due. Ti piacerà lavorarci.

1
Compito
JAVA 25 SELF, livello 4, lezione 4
Bloccato
Ricerca del codice segreto 🔐
Ricerca del codice segreto 🔐
1
Compito
JAVA 25 SELF, livello 4, lezione 4
Bloccato
Selezione di prodotti di qualità 📦
Selezione di prodotti di qualità 📦
1
Compito
JAVA 25 SELF, livello 4, lezione 4
Bloccato
Verifica se un numero è primo ❓
Verifica se un numero è primo ❓
1
Compito
JAVA 25 SELF, livello 4, lezione 4
Bloccato
Somma delle vendite giornaliere 💰
Somma delle vendite giornaliere 💰
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION