java - salir - ¿Hay una manera de romper un bucle while antes de que la condición original se haga falsa?
explicacion del ciclo while en java (8)
¿Hay una manera de romper un bucle while antes de que la condición original se haga falsa?
por ejemplo si tengo:
while (a==true)
{
doSomething() ;
if (d==false) get out of loop ;
doSomething_that_i_don''t_want_done_if_d_is_false_but_do_if_a_and_d_are_true() ;
}
¿Hay alguna manera de hacer esto?
Haga lo siguiente: Note la inclusión de llaves - su buena práctica de programación.
while (a==true)
{
doSomething() ;
if (d==false) { break ; }
else { /* Do something else */ }
}
Prueba esto:
if(d==false) break;
Esto se denomina una declaración de interrupción "sin etiquetar", y su propósito es terminar los bucles while
, for
y do-while
while.
Sí, use la instrucción break
.
while (a==true)
{
doSomething() ;
if (d==false) break;
doSomething_that_i_don''t_want_done_if_d_is_false_but_do_if_a_and_d_are_true() ;
}
Utilice la instrucción break
.
if (!d) break;
Tenga en cuenta que no es necesario que compare con true
o false
en una expresión booleana.
break
es el comando que estás buscando.
Y no te compares con las constantes booleanas, en realidad solo oscurece tu significado. Aquí hay una versión alternativa:
while (a)
{
doSomething();
if (!d)
break;
doSomething_that_i_don''t_want_done_if_d_is_false_but_do_if_a_and_d_are_true();
}
while ( doSomething() && doSomethingElse() );
cambie la firma de retorno de sus métodos de manera que d==doSomething()
y a==doSomethingElse()
. Ya deben tener efectos secundarios si su bucle alguna vez se escapa.
Si necesita una prueba inicial de tal valor para iniciar o no el ciclo, puede lanzar un if
en el frente.
while(a)
{
doSomething();
if(!d)
{
break;
}
}