Кто-нибудь, пожалуйста, объясните мне эту инструкцию: для (;;)
Я столкнулся с несколькими типами этих отметок (например, в ajax-коде facebook и в параллельном Java).
Кто-нибудь, пожалуйста, объясните мне эту инструкцию: для (;;)
Я столкнулся с несколькими типами этих отметок (например, в ajax-коде facebook и в параллельном Java).
Бесконечный цикл.
Каждая из трех частей цикла for (for(x; y; z)
) является необязательной.
Итак, вы можете сделать это:
int i = 0;
for (; i < 20; ++i)
и это совершенно верно, или
for (int i = 0; i < 20;) { ++i; }
или
for (int i = 0; ; ++i) { if (i < 20) { break; } }
и все они действительны.
Вы также можете опустить все три части с помощью for(;;)
. Затем у вас есть цикл, который:
так что в основном бесконечный цикл. Он просто делает то, что он говорит в теле цикла, снова и снова
Это бесконечный цикл. Для описания инструкции for
см. здесь.
Что бесконечный цикл, аналогичный
while(true)
{
...
}
Его бесконечный цикл, считая, что условие (несуществующего) выхода никогда не будет ложным.
Любой цикл цикла без условия выхода будет бесконечным:
for (int x=0; ; x++) { }
Точно так же, как while (true)
, хотя немного менее читаемый IMHO.
Это действительно бесконечный цикл. Но в Java вы действительно предпочитаете while (true)
over for (;;)
, так как это более читаемое (что вы, наверное, уже знаете). Компилятор все равно оптимизирует его. В JavaScript нет средств компилятора и каждого байта по HTTP, поэтому причина, почему for (;;)
является предпочтительной. Он сохраняет несколько символов (байты).
Синтаксис цикла for:
for (init-stmt; condition; next-stmt) {
}
Таким образом, это просто цикл for без начального оператора, следующего оператора или условия. Отсутствие условия выхода делает его бесконечным.