2014-05-08 14 views
9

Voglio rompere un ciclo while del formato sottostante che ha un'istruzione if. Se l'istruzione if è vera, anche il ciclo while deve interrompersi. Qualsiasi aiuto sarebbe apprezzato.Come interrompere un ciclo while da una condizione if all'interno del ciclo while?

while(something.hasnext()) { 
    do something... 
    if(contains something to process){ 
     do something 
     break if condition and while loop 
    } 
} 
+2

Hai detto che la risposta nella tua domanda! –

+0

** break if loop ** qualcosa 'do'' while loop' mi ha confuso. Pensavo ci fossero due anelli. – Braj

+0

non puoi dire "if (true) {break;}". – Braj

risposta

27

if non è un ciclo. Basta chiamare lo break;.

esempio inventato:

public static void main(String[] args) { 
    int i = 0; 
    while (i++ < 10) { 
    if (i == 5) break; 
    } 
    System.out.println(i); //prints 5 
} 

Se stavate effettivamente utilizzando cicli annidati, si sarebbe in grado to use labels.

+0

@ Codelearn14 Continui a dirlo, ma non importa quante volte lo dici, sarà comunque falso. –

+0

@ Codelearn14 Puoi pubblicare un esempio di codice che dimostrerà ciò che stai dicendo? Forse la condizione di 'if' non viene mai soddisfatta impedendo che venga interrotta la funzione' break'. – Pshemo

+0

Sì, penso anche io. Il mio male dispiace e grazie per l'aiuto – Coder2017

2

Un "se" non è un ciclo. Usa la pausa all'interno del "se" e uscirà dal "while".

Se è necessario utilizzare loop nidificati autentici, Java ha il concetto di interruzione etichettata. Puoi mettere un'etichetta prima di un ciclo, e quindi usare il nome dell'etichetta è l'argomento da interrompere. Si romperà fuori dal ciclo etichettato.

3
while(something.hasnext()) 
do something... 
    if(contains something to process){ 
     do something... 
     break; 
    } 
} 

Basta usare l'istruzione break;

Per esempio: questo a soli stampe "Breaking ..."

while (true) { 
    if (true) { 
     System.out.println("Breaking..."); 
     break; 
    } 
    System.out.println("Did this print?"); 
} 
+0

@rahul Si prega di rispondere – Braj