Я смотрел, хотя такие же разработчики кодируют, когда я видел это..
for (;;){
....
....
....
}
Я никогда не видел";"; используемый в цикле. Что это делает точно?
Он зацикливается бесконечно. ';;' приравнивается к отсутствию начального значения, без условия остановки и без условия приращения.
Это эквивалентно
while (true)
{
...
}
Обычно в теле цикла есть условный оператор break;
, если только это не что-то вроде цикла простоя системы или перекачки сообщений.
Как и в C, цикл for
состоит из трех частей:
Например:
for (i = 1, acc = 0; i <= 10; i++)
acc += i;
сложит числа от 1 до 10 включительно (в C и, если вы используете синтаксис Perl, например $ i
и фигурные скобки, также и в Perl).
Однако ничто не требует, чтобы разделы на самом деле содержали что-либо, и, если условие отсутствует, предполагается, что оно истинно.
Таким образом, цикл for (;;)
в основном означает: не выполнять никаких настроек цикла, повторять цикл навсегда (несмотря на прерывания) и не выполнять никакой обработки, специфичной для итераций. Другими словами, это бесконечный цикл.
Все 3 части являются необязательными. Инициализация и обновление пустого цикла - это беззвучный цикл. Пустое условие завершения - это неявное истинное
. По сути, это то же самое, что и
while (true) {
//...
}
. Обратите внимание, что это не обязательно должно быть все или ничего; вы можете иметь какую-то часть, а другую - нет.
for (init; cond; ) {
//...
}
for (; cond; update) {
//...
}
for (init; ; update) {
//...
}
Это то же самое, что и
while(true) {
...
}
Он зацикливается вечно.
Вам не нужно указывать все части цикла for. Например, следующий цикл (который не содержит тела или токена обновления) будет выполнять линейный поиск myArray
for($index = -1; $myArray[++$index] != $target;);
Бесконечный цикл. Часто он будет использоваться в потоке для выполнения некоторой работы.
boolean exit = false;
for(;;) {
if(exit) {
break;
}
// do some work
}
Бесконечный цикл (пока вы не выйдете из него).
Часто используется вместо:
while(true) { // Do something }