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