A for
цикл в Java имеет следующую структуру -
for (initialization statement; condition check; update)
loop body;
Как видите, здесь четыре утверждения -
- Оператор инициализации: этот оператор выполняется только один раз, когда цикл вводится впервые. Это необязательное утверждение, означающее, что вы можете оставить это поле пустым. Обычно используется для некоторой цели инициализации.
- Условная проверка: это утверждение, пожалуй, самое важное. Он проверяет, является ли определенное выражение истинным. Если это так, то выполнение цикла продолжается. Вы можете оставить это поле пустым, что будет оценено как
true
.
- Обновление: этот список операторов выполняется слева направо, обычно используется для увеличения / уменьшения некоторой переменной.
- тело цикла: тело цикла, которое будет выполняться снова и снова на основе значения истинности условной проверки.
По сути, так следует выполнение: сначала, когда цикл вводится впервые, оператор инициализации выполняется один раз. Затем выполняется условная проверка, чтобы увидеть, оценивается ли она как true. Если это так, то выполняется тело цикла, в противном случае выполнение цикла заканчивается. После этого выполняется оператор (ы) Update. Затем условная проверка выполняется снова, и если она оценивается как истина, то снова выполняется тело цикла, затем выполняется оператор обновления, затем снова условная проверка .... Вы получаете изображение.
Теперь о вашем for( ; ; )
синтаксисе. У него нет оператора инициализации, поэтому ничего не будет выполнено. Его оператор условной проверки также пуст, что означает, что после этого выполняется тело цикла. Далее, поскольку оператор обновления пуст, ничего не выполняется. Затем снова выполняется условная проверка, которая снова оценивается как истина, и затем весь этот процесс снова повторяется.
Итак, вы видите, что это в основном бесконечный цикл, у которого нет оператора инициализации, чья условная проверка всегда будет иметь значение 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;