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
}
}
Respostas:
Encontrar uma while...do
construção while(true)
em meu código faria meus olhos sangrarem. Em while
vez 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.
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; }
...
}
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.
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.
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;
}
}
}
Você pode usar "break" para interromper o loop, o que não permitirá que o loop processe mais condições
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