L'istruzione break in Java

Nel linguaggio Java l'istruzione `break` non è niente di particolarmente complesso, ma è molto utile quando vuoi "uscire" o interrompere un ciclo o un’istruzione `switch`.

break

Pensa a `break` come una sorta di interruttore di emergenza: quando lo incontri nel codice, interrompe immediatamente quello che sta facendo e ti fa uscire dal ciclo o dal blocco di codice in cui ti trovi.

Puoi usare questa istruzione nelle strutture cicliche e nelle strutture condizionali.

In altre parole l'istruzione `break` è come un piccolo comando di stop che ti consente di controllare quando uscire da cicli `for`, `while` o blocchi di codice come lo `switch` . Senza questa istruzione, potresti eseguire troppo codice, anche quando non ne hai bisogno. Nei prossimi paragrafi vedremo qualche esempio per rendere tutto più chiaro. Non è complicata da usare.

Break nei cicli `for`

Immagina di dover cercare un numero in un array.

Quando lo trovi, non ha senso continuare a cercare, giusto? Ecco che arriva in aiuto `break`.

Guarda questo esempio:

public class Main {
    public static void main(String[] args) {
        int[] numeri = {1, 2, 3, 4, 5, 6, 7, 8, 9};
        int numeroDaTrovare = 5;

        for (int i = 0; i < numeri.length; i++) {
            if (numeri[i] == numeroDaTrovare) {
                System.out.println("Numero trovato: " + numeri[i]);
                break; // Esci dal ciclo appena trovi il numero
            }
        }
    }
}

Qui, il ciclo `for` scorre ogni elemento dell'array.

Appena trova il numero che stiamo cercando, stampa il risultato e poi usa `break` per interrompere il ciclo.

Numero trovato: 5

Senza `break`, il ciclo continuerebbe fino alla fine, anche se avessimo già trovato ciò che cercavamo.

Break nei cicli `while`

Il concetto è lo stesso anche nei cicli `while`.

Ad esempio, supponiamo che stai leggendo numeri da un input fino a quando non incontri un numero negativo. Quando ciò accade, vuoi interrompere il ciclo:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        while (true) { 
            // Ciclo infinito, si interromperà solo con un break
            System.out.print("Inserisci un numero (numero negativo per uscire): ");
            int numero = scanner.nextInt();
            
            if (numero < 0) {
                break;  // Esce dal ciclo se il numero è negativo
            }
            
            System.out.println("Hai inserito: " + numero);
        }
        
        System.out.println("Hai inserito un numero negativo. Fine del programma.");
    }
}

In questo caso, il ciclo `while` continua fino a quando l’utente inserisce un numero negativo.

Appena ciò avviene, l’istruzione `break` interrompe il ciclo e il programma esce.

Inserisci un numero (numero negativo per uscire): 11
Hai inserito: 11
Inserisci un numero (numero negativo per uscire): 3
Hai inserito: 3
Inserisci un numero (numero negativo per uscire): -4
Hai inserito un numero negativo. Fine del programma.

Break nello `switch`

Ora passiamo a un altro uso comune di `break`, all’interno dell’istruzione `switch`.

Qui `break` è fondamentale per prevenire quello che si chiama "fall-through", cioè il passaggio da un caso al successivo.

Ecco un esempio pratico.

public class Main {
    public static void main(String[] args) {
        int giorno = 3;
        
        switch (giorno) {
            case 1:
                System.out.println("Lunedì");
                break;
            case 2:
                System.out.println("Martedì");
                break;
            case 3:
                System.out.println("Mercoledì");
                break;
            case 4:
                System.out.println("Giovedì");
                break;
            case 5:
                System.out.println("Venerdì");
                break;
            default:
                System.out.println("Weekend!");
                break;
        }
    }
}

In questo caso, se `giorno` è uguale a 3, lo switch stampa "Mercoledì" e poi si interrompe.

Mercoledì

Senza `break`, il programma continuerebbe a eseguire tutti i casi successivi, stampando anche "Giovedì" e "Venerdì", anche se non dovrebbe!

Cosa succede senza `break`?

Proviamo a togliere i `break` dalla struttura condizionale `switch` e vediamo cosa accade.

public class Main {
    public static void main(String[] args) {
        int giorno = 3;
        
        switch (giorno) {
            case 1:
                System.out.println("Lunedì");
            case 2:
                System.out.println("Martedì");
            case 3:
                System.out.println("Mercoledì");
            case 4:
                System.out.println("Giovedì");
            case 5:
                System.out.println("Venerdì");
            default:
                System.out.println("Weekend!");
        }
    }
}

Se `giorno` è 3, il programma stamperà "Mercoledì", "Giovedì", "Venerdì" e "Weekend!".

Questo accade perché non si ferma dopo aver trovato il risultato corretto.

Mercoledì
Giovedì
Venerdì
Weekend!

È probabile che non sia questo quello che vuoi ottenere.

Quindi, il `break` serve a fermare l'esecuzione dopo che ha trovato il caso giusto.

A questo punto dovresti avere ben chiaro come funziona e a cosa serve l'istruzione `break` in un programma Java.

 
 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin

Il controllo di flusso in Java

Le strutture condizionali

Le strutture cicliche

Le istruzioni di interruzione