В Java тело цикла do-while
и условие цикла не принадлежат одной и той же области. Таким образом, следующий код не будет компилироваться:
do {
boolean b = false;
} while (b); // b cannot be resolved to a variable
Но этот код имеет для меня смысл.
Кроме того, я не могу найти никаких подводных камней, если тело и условие находятся в одной и той же области; поскольку тело всегда будет выполняться, а Java не имеет Goto
, я не знаю, как можно пропустить объявление переменной во внешней области тела do-while
. Даже если это возможно, компилятор всегда может обнаружить такую возможность и затем выдать ошибки времени компиляции.
Есть ли какая-либо причина для такого поведения (кроме сохранения цикла do-while
в том же формате, что и while
)? Мне действительно любопытно. Спасибо за любой вклад!