English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial di base Java

Controllo di flusso Java

Java Array

Java Orientamento ad oggetti (I)

Java Orientamento ad oggetti (II)

Java Orientamento ad oggetti (III)

Gestione delle eccezioni Java

Java List

Java Queue (coda)

Java Map collection

Java Set collection

Java Input/Output (I/O)

Java Reader/Writer

Altri argomenti Java

Istruzione continue Java

In questo tutorial, imparerai l'istruzione continue in Java e le istruzioni marcate come continue con l'aiuto di esempi.

Quando si gestiscono i cicli, a volte è necessario saltare alcune istruzioni nel ciclo o terminare immediatamente il ciclo senza controllare l'espressione di test.

In questo caso, verranno utilizzate le istruzioni break e continue. Per capire l'istruzione break, visitareJava break.

L'istruzione continue in Java salta l'iterazione corrente del ciclo (for, while, do…while, ecc.), e il controllo del programma viene spostato alla fine del ciclo per calcolare l'espressione di test del ciclo.

Per il ciclo for, l'istruzione di aggiornamento viene eseguita prima dell'espressione di test.

L'istruzione continue è quasi sempre utilizzata inistruzione if ... elseÈ utilizzato nelle istruzioni decisionali. La sua sintassi è:

continue;

Come funziona l'istruzione continue?

Diagramma di flusso della lavorazione dell'istruzione continue in Java

Esempio 1: istruzione continue in Java

class Test {
    public static void main(String[] args) {
      
        // Ciclo for
        for (int i = 1; i <= 10; ++i) {
            // Se il valore di i è tra 4 e 9, eseguire continue
            if (i > 4 && i < 9) {
                continue;
            }      
            System.out.println(i);
        }   
    }
}

Output:

1
2
3
4
9
10

Nel programma sopra, abbiamo utilizzato un ciclo for per stampare il valore di i in ogni iterazione. Per capire come funziona il ciclo for, visitareCiclo for JavaEcco alcune considerazioni da tenere a mente qui:

if (i > 5 && i < 9) {
    continue;
}

Questo significa che quando il valore di i è maggiore di 4 e minore di 9, viene saltata l'istruzione print nel ciclo. Pertanto, vengono saltati i valori di output 5, 6, 7 e 8.

Esempio 2: istruzione continue in Java

Il seguente programma calcola la somma dei 5 numeri positivi inseriti dall'utente. Se l'utente inserisce un numero negativo o zero, viene saltato dal calcolo.

Per accettare l'input dell'utente, abbiamo utilizzato l'oggetto Scanner. Per ulteriori informazioni su Scanner, visitareJava Scanner.

import java.util.Scanner;
class AssignmentOperator {
    public static void main(String[] args) {
      
        Double number, sum = 0.0;
        //Crea un oggetto Scanner
        Scanner input = new Scanner(System.in);
      
        per (int i = 1; i < 6; ++i) {
            System.out.print("Inserisci un numero: ");
            //Accetta l'input di dati di tipo double
            number = input.nextDouble();
         
            //Se number è negativo, salta l'iterazione
            if (number <= 0.0) {
                continue;
            }
         
            sum += number;
        }
        System.out.println("Sum = " + sum);
    }
}

Output:

Inserisci un numero: 2.2
Inserisci un numero: 5.6
Inserisci un numero: 0
Inserisci un numero: -2.4
Inserisci un numero: -3
Sum = 7.8

Nella seguente programma, notate le seguenti righe:

if (number < 0.0) {
    continue;
}

 Questo significa che quando l'utente inserisce un numero negativo, viene saltata l'iterazione corrente del ciclo. L'iterazione successiva inizia.

Java continue e cicli annessi

seCicli annessiin questo caso, continue salta l'iterazione corrente del ciclo più interno.

Diagramma di workflow dell'istruzione continue in un ciclo annesso

Istruzione continue etichettata

 Finora, abbiamo utilizzato istruzioni continue non etichettate. Queste vengono utilizzate per terminare il ciclo più interno e le istruzioni switch. Tuttavia, in Java esiste un'altra forma di istruzione continue, chiamata continue etichettato.

Diagramma di workflow dell'istruzione continue etichettata in Java

Come mostrato nell'immagine, utilizziamo l'identificatore label per specificare il ciclo esterno. Ora, notate come viene utilizzata questa istruzione continue (continue label;).

 In questo caso, l'istruzione continue salta l'iterazione corrente dell'istruzione etichettata (cioè il ciclo esterno). Poi, il controllo del programma passa all'iterazione successiva dell'istruzione etichettata (ciclo esterno)

Esempio 3: istruzioni etichettate con continue

class LabeledContinue {
    public static void main(String[] args) {
        //Il ciclo for esterno è etichettato     
        first:
        per (int i = 1; i < 6; ++i) {
            per (int j = 1; j < 5; ++j) {
                if (i == 3 || j == 2)
                    //Saltare l'iterazione etichettata (ciclo for esterno)
                    continue first;
                System.out.println("i = " + i + "; j = " + j); 
            }
        } 
    }
}

Output:

i = 1; j = 1
i = 2; j = 1
i = 4; j = 1
i = 5; j = 1

 Nell'esempio sopra, viene utilizzato lo statement continue per saltare l'iterazione corrente del ciclo etichettato first.

if (i==3 || j==2)
    continue first;

 Ecco, possiamo vedere che il ciclo for più esterno è etichettato come first,

first:
for (int i = 1; i < 6; ++i) {..}

 Quindi, se il valore di i è 3 o il valore di j è 2, salta l'iterazione del ciclo for esterno.

AttenzioneNon si consiglia di utilizzare continue etichettati, poiché può rendere il codice difficile da comprendere. Se sei in una situazione in cui devi necessariamente utilizzare continue etichettati, rifletti sul codice e cerca di risolvere in modo diverso per renderlo più leggibile.