有没有办法在原始条件变为假之前突破while循环?

时间:2010-04-15 22:40:18

标签: java while-loop

有没有办法在原始条件变为假之前突破while循环?

例如,如果我有:

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() ;
} 

有没有办法做到这一点?

8 个答案:

答案 0 :(得分:26)

使用break statement

if (!d) break;

请注意,您无需在布尔表达式中与truefalse进行比较。

答案 1 :(得分:5)

break是您正在寻找的命令。

不要与布尔常量相比 - 它实际上只是模糊了你的意思。这是一个替代版本:

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();
} 

答案 2 :(得分:3)

试试这个:

if(d==false) break;

这称为“未标记”的break语句,其目的是终止whilefordo-while循环。

Reference here

答案 3 :(得分:3)

答案 4 :(得分:1)

是的,请使用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() ;
} 

答案 5 :(得分:1)

while(a)
{
    doSomething();
    if(!d)
    {
        break;
    }
}

答案 6 :(得分:0)

执行以下操作 请注意包含大括号 - 其良好的编程习惯

while (a==true) 
{ 
    doSomething() ; 
    if (d==false) { break ; }
    else { /* Do something else */ }
} 

答案 7 :(得分:0)

while ( doSomething() && doSomethingElse() );

更改方法的返回签名,例如d==doSomething()a==doSomethingElse()。如果你的循环逃脱,它们必须已经有副作用。

如果您需要对是否开始循环进行初始测试,可以在前面抛出if