Ответ 1
A for
цикл в java имеет следующую структуру -
for (initialization statement; condition check; update)
loop body;
Как вы можете видеть, здесь есть четыре утверждения -
- Оператор инициализации: этот оператор выполняется только один раз, когда цикл вводится в первый раз. Это необязательный оператор, то есть вы можете оставить это поле пустым. Он обычно используется для некоторых целей инициализации.
- Условная проверка: это утверждение, вероятно, самое важное. Он проверяет, соответствует ли определенное выражение истинному. Если это так, выполнение цикла продолжается. Вы можете оставить это поле пустым, которое будет оцениваться как
true
. - Обновление: этот список операторов выполняется слева направо, обычно используется для увеличения/уменьшения некоторой переменной.
- тело цикла: тело цикла, которое будет выполняться снова и снова на основе условного значения истинности проверки.
В основном, так выглядит выполнение: во-первых, когда цикл вводится в первый раз, оператор инициализации выполняется один раз. Затем выполняется условная проверка, чтобы проверить, соответствует ли она истинному. Если это так, то тело цикла выполняется, в противном случае выполнение цикла завершено. После этого выполняются() операторы обновления. Далее, условная проверка выполняется снова, и если она оценивает значение true, то снова выполняется тело цикла, затем выполняется инструкция обновления, затем снова условная проверка.... вы получаете изображение.
Теперь о синтаксисе for( ; ; )
. У него нет инструкции инициализации, поэтому ничего не будет выполнено. Этот условный оператор проверки также пуст, поэтому означает, что он оценивает значение true. После этого выполняется тело цикла. Затем, поскольку оператор обновления пуст, ничего не выполняется. Затем выполняется условная проверка, которая снова оценивается как истина, а затем весь этот процесс снова будет повторяться.
Итак, вы видите, что это в основном бесконечный цикл, который не имеет инструкции инициализации, чья условная проверка всегда оценивает значение true и не имеет оператора обновления. Это эквивалентно -
while(true)
{
.....
}
который является еще одной популярной конструкцией цикла в java.
Когда вы используете бесконечный цикл, подобный этому, важно обратить внимание на условие прерывания, так как в большинстве случаев вы не можете позволить циклу запускать бесконечно. Чтобы вырваться из этих типов циклов, вы можете использовать оператор break
. Структура выглядит следующим образом:
if(some_condition_is_true)
break; // This will cause execution to break out of its nearest loop
или
if(some_condition_is_false)
break;