В C или C ++, может ли al oop иметь разделы "do" и "while"?
Допускает ли синтаксис в каком-либо из языков семейства C "делать, пока и пока" l oop с обоими телами определены?
Нет, у вас может быть время l oop или задание l oop. В то время как l oop отличается от do-while l oop и наоборот.
Вы не можете объединить оба типа вместе.
Это может быть только do-while l oop:
do
{
/* statements */
}while(condition);
или некоторое время l oop:
while(condition)
{
/* statements */
};
В то время как l oop, вы выполняете операторы после определенное условие. В то время как l oop вы хотя бы один раз пробегаете l oop, пока не достигнете условия. Но центр обоих циклов в конце - один и тот же тип операторов / l oop body. Таким образом, не имеет смысла добавлять второй.
Когда вы используете do-while l oop, как вы сделали:
do {
foo();
} while ( baz() == true ){
bar();
}
область, ограниченная {}
после выполнения операции l oop условие:
{
bar();
}
не является частью выполнения операции l oop.
Он будет обрабатываться как только набор операторов в отдельном блоке области действия, который будет выполняться после выполнения do-while-l oop.
Но даже тогда компилятор пропустит это, только если вы установили точку с запятой ;
после условия do-while-l oop:
do {
foo();
} while ( baz() == true );{ // Note the semicolon ";".
bar();
}
С предоставленным код:
do {
foo();
} while ( baz() == true ){
bar();
}
компилятор выдаст ошибку.