2011-10-31 4 views
55

Qual è il modo migliore per uscire/terminare un ciclo while in Java?Come si esce da un ciclo while in Java?

Per esempio, il mio codice è attualmente la seguente:

while(true){ 
    if(obj == null){ 

     // I need to exit here 

    } 
} 
+29

interruzione; ma seriamente, dovresti studiare un po 'di più le basi. – stivlo

+6

-1 Nessun tentativo di ricerca ... –

+23

Dal momento che apparentemente non è un duplicato, in realtà lo chiamerei una buona domanda. Trovare questo è molto più piacevole di dover ordinare un tutorial Java degli anni '90. – twiz

risposta

136

Uso break:

while (true) { 
    .... 
    if (obj == null) { 
     break; 
    } 
    .... 
} 

Tuttavia, se il codice sia esattamente come è stato specificato è possibile utilizzare un normale ciclo while e modificare la condizione in obj != null:

while (obj != null) { 
    .... 
} 
+0

Grazie ragazzi, dal momento che obj stava usando all'interno del ciclo ho bisogno di usare il primo mentre (vero). Grazie mille per i tuoi suggerimenti. Grazie mille .. – BalaB

+8

@bala se la risposta ha risolto il tuo problema, contrassegnalo come accettato per aiutare altre persone che potrebbero imbattersi nella domanda. – glosrob

+0

@BalaB non ancora accettato? –

2

Dai uno sguardo allo Java™ Tutorials di Oracle.

Tuttavia, come dacwe said, utilizzare break.

Se è possibile, è spesso più chiaro evitare di utilizzare l'interruzione e inserire il controllo come condizione del ciclo while o utilizzare qualcosa come un ciclo do while. Questo non è sempre possibile però.

6
while(obj != null){ 
    // statements. 
} 
3

break è quello che stai cercando:

while (true) { 
    if (obj == null) break; 
} 

in alternativa, ristrutturare il ciclo:

while (obj != null) { 
    // do stuff 
} 

o:

do { 
    // do stuff 
} while (obj != null); 
3

Trovare un while...do costruire con while(true) nel mio codice mi farebbe sanguinare gli occhi. Utilizzare un while ciclo standard invece:

while (obj != null){ 
    ... 
} 

E prendere uno sguardo al Yacoby link fornito nel suo answer, e anche questa. Sul serio.

The while and do-while Statements

1

Si può fare più test logici condizione entro il controllo mentre() utilizzando le stesse regole all'interno di qualsiasi controllo logico.

while (obj != null) { 
    // do stuff 
} 

opere, così come

while (value > 5 && value < 10) { 
    // do stuff 
} 

sono validi. I condizionali vengono controllati ogni iterazione attraverso il ciclo. Non appena uno non corrisponde, il ciclo while() viene chiuso. Puoi anche usare la pausa;

while (value > 5) { 
    if (value > 10) { break; } 
    ... 
} 
0

È possibile utilizzare "interruzione", già menzionato nelle risposte sopra. Se è necessario restituire alcuni valori.È possibile utilizzare "ritorno", come il codice qui sotto:

while(true){ 
     if(some condition){ 
      do something; 
      return;} 
     else{ 
      do something; 
      return;} 
      } 

in questo caso, questo mentre è meno di un metodo che sta tornando un qualche tipo di valori.

0

se si scrive mentre (vero). ciò significa che il ciclo non si fermerà in nessuna situazione per fermare questo ciclo, devi usare l'istruzione break tra un blocco e l'altro.

package com.java.demo; 

/** 
* @author Ankit Sood Apr 20, 2017 
*/ 
public class Demo { 

    /** 
    * The main method. 
    * 
    * @param args 
    *   the arguments 
    */ 
    public static void main(String[] args) { 

    /* Initialize while loop */ 
    while (true) { 

     /* 
     * You have to declare some condition to stop while loop 

     * In which situation or condition you want to terminate while loop. 
     * conditions like: if(condition){break}, if(var==10){break} etc... 
     */ 

     /* break keyword is for stop while loop */ 

     break; 

    } 
    } 

}