Ho visto questa parola chiave per la prima volta e mi chiedevo se qualcuno potesse spiegarmi cosa fa.
- Qual è la
continue
parola chiave? - Come funziona?
- Quando viene usato?
Ho visto questa parola chiave per la prima volta e mi chiedevo se qualcuno potesse spiegarmi cosa fa.
continue
parola chiave?Risposte:
Una continue
dichiarazione senza etichetta eseguire nuovamente dalla condizione più interno while
o do
anello, e dall'espressione aggiornamento più interno for
ciclo. Viene spesso utilizzato per terminare anticipatamente l'elaborazione di un ciclo ed evitare quindi if
istruzioni profondamente annidate . Nell'esempio seguente continue
verrà visualizzata la riga successiva, senza elaborare la seguente istruzione nel ciclo.
while (getNext(line)) {
if (line.isEmpty() || line.isComment())
continue;
// More code here
}
Con un'etichetta, si continue
eseguirà nuovamente dal ciclo con l'etichetta corrispondente, anziché il ciclo più interno. Questo può essere usato per sfuggire ad anelli profondamente annidati o semplicemente per chiarezza.
A volte continue
viene anche utilizzato come segnaposto per rendere più chiaro un corpo ad anello vuoto.
for (count = 0; foo.moreData(); count++)
continue;
La stessa istruzione senza etichetta esiste anche in C e C ++. L'equivalente in Perl è next
.
Questo tipo di flusso di controllo non è raccomandato, ma se lo desideri puoi anche utilizzare continue
per simulare una forma limitata di goto
. Nel seguente esempio continue
eseguirà nuovamente il for (;;)
ciclo vuoto .
aLoopName: for (;;) {
// ...
while (someCondition)
// ...
if (otherCondition)
continue aLoopName;
continue
è un po 'come goto
. Hai familiarità con break
? Al contrario, è più facile pensarci:
break
termina il ciclo (passa al codice sottostante).
continue
termina il resto dell'elaborazione del codice all'interno del ciclo per l'iterazione corrente, ma continua il ciclo.
Se pensi al corpo di un loop come a una subroutine, continue
è un po 'come return
. La stessa parola chiave esiste in C e ha lo stesso scopo. Ecco un esempio inventato:
for(int i=0; i < 10; ++i) {
if (i % 2 == 0) {
continue;
}
System.out.println(i);
}
Questo stamperà solo i numeri dispari.
In generale, vedo continue
(e break
) come un avvertimento che il codice potrebbe utilizzare alcuni refactoring, specialmente se la dichiarazione while
o for
loop non è immediatamente in vista. Lo stesso vale per return
un metodo, ma per un motivo leggermente diverso.
Come altri hanno già detto, continue
sposta alla successiva iterazione del ciclo, mentre si break
sposta dal ciclo di chiusura.
Possono trattarsi di bombe temporali di manutenzione perché non esiste un collegamento immediato tra continue
/ break
e il ciclo che sta continuando / interrompendo oltre al contesto; aggiungi un loop interno o sposta le "budella" del loop in un metodo separato e avrai un effetto nascosto di continue
/break
fallito.
IMHO, è meglio usarli come misura dell'ultima risorsa e quindi assicurarsi che il loro uso sia raggruppato strettamente all'inizio o alla fine del ciclo in modo che lo sviluppatore successivo possa vedere i "limiti" del ciclo in una schermata .
continue
, break
e return
(a parte One True Return alla fine del metodo) rientrano tutti nella categoria generale di "GOTO nascosti". Mettono il loop e il controllo delle funzioni in luoghi inaspettati, che alla fine causano bug.
"continua" in Java significa andare alla fine del ciclo corrente, significa: se il compilatore vede continuare in un ciclo passerà alla successiva iterazione
Esempio: questo è un codice per stampare i numeri dispari da 1 a 10
il compilatore ignorerà il codice di stampa ogni volta che vede passare alla successiva iterazione
for (int i = 0; i < 10; i++) {
if (i%2 == 0) continue;
System.out.println(i+"");
}
Come già accennato continue
salterà l'elaborazione del codice sottostante e fino alla fine del ciclo. Quindi, si viene spostati nelle condizioni del loop e si esegue la successiva iterazione se questa condizione è ancora valida (o se è presente un flag, alla condizione del ciclo indicato).
Va sottolineato che nel caso in cui do - while
si è passati alla condizione in basso dopo acontinue
, non all'inizio del ciclo.
Questo è il motivo per cui molte persone non riescono a rispondere correttamente a ciò che genererà il seguente codice.
Random r = new Random();
Set<Integer> aSet= new HashSet<Integer>();
int anInt;
do {
anInt = r.nextInt(10);
if (anInt % 2 == 0)
continue;
System.out.println(anInt);
} while (aSet.add(anInt));
System.out.println(aSet);
* Se la tua risposta è che aSet
conterrà numeri dispari solo al 100% ... ti sbagli!
Continua è una parola chiave in Java e viene utilizzata per saltare l'iterazione corrente.
Supponiamo di voler stampare tutti i numeri dispari da 1 a 100
public class Main {
public static void main(String args[]) {
//Program to print all odd numbers from 1 to 100
for(int i=1 ; i<=100 ; i++) {
if(i % 2 == 0) {
continue;
}
System.out.println(i);
}
}
}
continue statement nel programma precedente salta semplicemente l'iterazione quando i è pari e stampa il valore di i quando è dispari.
L' istruzione Continue ti porta semplicemente fuori dal ciclo senza eseguire le istruzioni rimanenti all'interno del ciclo e innesca la successiva iterazione.
Considera una condizione If Else. Un'istruzione continue esegue ciò che è presente in una condizione e esce dalla condizione, ovvero passa alla successiva iterazione o condizione. Ma una pausa lascia il giro. Considera il seguente programma. '
public class ContinueBreak {
public static void main(String[] args) {
String[] table={"aa","bb","cc","dd"};
for(String ss:table){
if("bb".equals(ss)){
continue;
}
System.out.println(ss);
if("cc".equals(ss)){
break;
}
}
System.out.println("Out of the loop.");
}
}
Stampa: aa cc Out of the loop.
Se usi break al posto di continue (After if.), Stamperà solo aa e uscirà dal ciclo .
Se la condizione "bb" è uguale a ss è soddisfatta: per continuare: passa all'iterazione successiva, ad esempio "cc" .equals (ss). Per Break: esce dal loop e stampa "Out of the loop".
break
Sono un po 'in ritardo alla festa, ma ...
Vale la pena ricordare che continue
è utile per loop vuoti in cui tutto il lavoro viene eseguito nell'espressione condizionale che controlla il loop. Per esempio:
while ((buffer[i++] = readChar()) >= 0)
continue;
In questo caso, tutto il lavoro di leggere un personaggio e aggiungerlo buffer
viene fatto nell'espressione che controlla il while
ciclo. L' continue
istruzione funge da indicatore visivo del fatto che il loop non ha bisogno di un corpo.
È un po 'più ovvio dell'equivalente:
while (...)
{ }
e decisamente migliore (e più sicuro) stile di codifica rispetto all'utilizzo di un'istruzione vuota come:
while (...)
;
while
diventare il corpo della while
clausola e che non sarebbe visivamente ovvio. Un esplicito continue
è ovvio e trasmette l'intenzione che una dichiarazione vuota non lo fa.
Fondamentalmente in Java, continue è una dichiarazione. Quindi l'istruzione continue viene normalmente utilizzata con i loop per saltare l'iterazione corrente.
Per come e quando viene utilizzato in Java, fare riferimento al collegamento di seguito. Ha una spiegazione con l'esempio.
https://www.flowerbrackets.com/continue-java-example/
Spero che sia d'aiuto !!
continue
deve essere all'interno di un loop Altrimenti mostra l'errore di seguito:
Continua fuori dal ciclo
L'istruzione continue viene utilizzata nella struttura di controllo del ciclo quando è necessario passare immediatamente alla successiva iterazione del ciclo.
Può essere utilizzato con for loop o while loop. L'istruzione continue di Java viene utilizzata per continuare il ciclo. Continua il flusso corrente del programma e salta il codice rimanente alla condizione specificata.
Nel caso di un loop interno, continua solo il loop interno.
Possiamo usare l'istruzione continue Java in tutti i tipi di loop come for loop, while loop e do-while loop.
per esempio
class Example{
public static void main(String args[]){
System.out.println("Start");
for(int i=0; i<10; i++){
if(i==5){continue;}
System.out.println("i : "+i);
}
System.out.println("End.");
}
}
produzione:
Start
i : 0
i : 1
i : 2
i : 3
i : 4
i : 6
i : 7
i : 8
i : 9
End.
[il numero 5 è salta]