Ответ 1
Используйте оператор break
.
if (!d) break;
Обратите внимание, что вам не нужно сравнивать с true
или false
в булевом выражении.
Есть ли способ вырваться из цикла 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() ;
}
Есть ли способ сделать это?
Используйте оператор break
.
if (!d) break;
Обратите внимание, что вам не нужно сравнивать с true
или false
в булевом выражении.
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();
}
Попробуйте следующее:
if(d==false) break;
Это называется операцией "немеченого" разрыва, и ее целью является завершение циклов while
, for
и do-while
.
Да, используйте оператор 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() ;
}
while(a)
{
doSomething();
if(!d)
{
break;
}
}
Сделайте следующее Обратите внимание на включение брекетов - его хорошая практика программирования
while (a==true)
{
doSomething() ;
if (d==false) { break ; }
else { /* Do something else */ }
}
while ( doSomething() && doSomethingElse() );
измените обратную подпись ваших методов таким образом, чтобы d==doSomething()
и a==doSomethingElse()
. Они должны иметь побочные эффекты, если ваша петля никогда не ускользает.
Если вам нужен начальный тест такого значения, чтобы начать или нет цикл, вы можете бросить if
на передней панели.