(;;)在Perl中意味着什么?

时间:2010-04-29 13:14:02

标签: perl loops

当我看到这个时,我正在寻找开发人员代码。

for (;;){
   ....
   ....
   ....
}

我从未见过“;;”用于循环中。这究竟是做什么的?

6 个答案:

答案 0 :(得分:27)

它永远循环。 ';;'等于没有起始值,没有停止条件和没有增量条件。

相当于

while (true)
{
   ...
}

在循环体中的某处通常会有一个条件break;语句,除非它类似于系统空闲循环或消息泵。

答案 1 :(得分:10)

所有3个部分都是可选的。空循环初始化和更新是noop。空终止条件是隐式true。它与

基本相同
while (true) {
   //...
}

请注意,它不必是全有或全无;你可以有一些而不是其他人。

for (init; cond; ) {
  //...
}

for (; cond; update) {
  //...
}

for (init; ; update) {
  //...
}

答案 2 :(得分:4)

无限循环。很多时候它会在一个线程中用来做一些工作。

    boolean exit = false;

    for(;;) {
        if(exit) {
            break;
        }
        // do some work
    }

答案 3 :(得分:4)

就像在C中一样,for循环有三个部分:

  • 一个预循环部分,在循环开始之前执行。
  • 一个持续的条件部分,虽然是真的,但会保持循环。
  • 迭代后部分,在循环体的每次迭代之后执行。

例如:

for (i = 1, acc = 0; i <= 10; i++)
    acc += i;

将从1到10包含数字(在C中,假设您在Perl中使用Perl语法,如$i和大括号)。

但是,没有任何要求实际上包含的部分,如果条件丢失,则认为是真的。

所以for(;;)循环基本上只是意味着:不要做任何循环设置,永远循环(尽管有破坏)并且不做任何特定于迭代的处理。换句话说,它是一个无限循环。

答案 4 :(得分:2)

无限循环(直到你突破它)。

它通常用于代替:

while(true) { // Do something }

答案 5 :(得分:2)

相同
while(true) {
   ...
}

它永远循环。

您无需指定for循环的所有部分。例如,以下循环(不包含正文或更新标记)将执行myArray的线性搜索

for($index = -1; $myArray[++$index] != $target;);