Como faço para sair de um loop while em Java?

86

Qual é a melhor maneira de sair / encerrar um loop while em Java?

Por exemplo, meu código atualmente é o seguinte:

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

        // I need to exit here

    }
}
BalaB
fonte

Respostas:

184

Use break:

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

No entanto, se o seu código for exatamente como especificou, você pode usar um whileloop normal e alterar a condição para obj != null:

while (obj != null) {
    ....
}
Dacwe
fonte
7
while(obj != null){
  // statements.
}
Riz
fonte
7

break é o que você está procurando:

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

alternativamente, reestruture seu loop:

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

ou:

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

Encontrar uma while...doconstrução while(true)em meu código faria meus olhos sangrarem. Em whilevez disso, use um loop padrão :

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

E dê uma olhada no link fornecido por Yacoby em sua resposta , e neste também. Seriamente.

As declarações while e do-while

Xavi López
fonte
3

Você pode fazer vários testes lógicos de condição dentro da verificação while () usando as mesmas regras de qualquer verificação lógica.

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

funciona, assim como

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

é válido. As condicionais são verificadas em cada iteração através do loop. Assim que um não corresponder, o loop while () será encerrado. Você também pode usar o break;

while ( value > 5 ) {  
    if ( value > 10 ) { break; }  
    ...  
}  
VikingGlen
fonte
2

Você pode usar o "break", já mencionado nas respostas acima. Se você precisar retornar alguns valores. Você pode usar "return" como o código abaixo:

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

neste caso, este while está em um método que está retornando algum tipo de valor.

Omar Faroque Anik
fonte
esta é a resposta exata e útil!
Noor Hossain
2

Dê uma olhada nos Tutoriais Java ™ da Oracle.

Mas basicamente, como disse Dacwe , use break.

Se você puder, geralmente é mais claro evitar o uso de break e colocar a verificação como uma condição do loop while, ou usar algo como um loop do while. Porém, isso nem sempre é possível.

Yacoby
fonte
0

se você escrever while (verdadeiro) . isso significa que o loop não irá parar em nenhuma situação para parar este loop, você deve usar a instrução break entre o bloco while.

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;
        }
    }
}
Ankit Sood
fonte
0

Você pode usar "break" para interromper o loop, o que não permitirá que o loop processe mais condições


fonte
0

Para sair de um loop while, use Break;Isto não permitirá o loop para processar quaisquer condições que são colocadas dentro, certifique-se de ter isto dentro do loop, pois você não pode colocá-lo fora do loop

HussainOmer
fonte