English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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;
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.
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.
seCicli annessiin questo caso, continue salta l'iterazione corrente del ciclo più interno.
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.
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)
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.