Подтвердить что ты не робот

Есть ли способ вырваться из цикла while, прежде чем исходное условие станет ложным?

Есть ли способ вырваться из цикла 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() ;
} 

Есть ли способ сделать это?

4b9b3361

Ответ 1

Используйте оператор break.

if (!d) break;

Обратите внимание, что вам не нужно сравнивать с true или false в булевом выражении.

Ответ 2

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

Ответ 3

Попробуйте следующее:

if(d==false) break;

Это называется операцией "немеченого" разрыва, и ее целью является завершение циклов while, for и do-while.

Ссылка здесь.

Ответ 5

Да, используйте оператор 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() ;
} 

Ответ 6

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

Ответ 7

Сделайте следующее Обратите внимание на включение брекетов - его хорошая практика программирования

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

Ответ 8

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

измените обратную подпись ваших методов таким образом, чтобы d==doSomething() и a==doSomethingElse(). Они должны иметь побочные эффекты, если ваша петля никогда не ускользает.

Если вам нужен начальный тест такого значения, чтобы начать или нет цикл, вы можете бросить if на передней панели.