什么是C ++中的(;;)循环?

时间:2016-11-26 04:01:07

标签: c++ loops

我的朋友向我展示了这一点,我不知道它是如何运作的以及它的名称。有人可以向我解释它是如何循环的吗?例如:

for(;;){
    cout << "loop" << endl;
}

它将永远保持循环字符串。这种循环可以用于任何事情。这是如何工作的?

5 个答案:

答案 0 :(得分:9)

根据语言规范,for迭代结构中的空状态等同于true条件。

  

6.5.3 for语句

     

1 for语句

     

for(for-init-statement condition opt ; expression opt )语句

     

相当于

{
  for-init-statement
  while ( condition ) {
    statement
    expression ;
  }
}
     

...

     

2 可以省略条件和表达式中的任何一个或两个。缺失条件使隐含的while子句等同于while(true)

所以,循环永远循环。这就是它的全部内容。

答案 1 :(得分:0)

它无限循环,因为没有初始化,条件和增量值在循环的参数中传递。典型的for循环采用如下参数:(&lt; initialization&gt ;;&lt; conditional&gt;;&lt; increment&gt;)

答案 2 :(得分:0)

这篇文章在我看来很好地解释了这一点。请参阅spex的答案: Why can the condition of a for-loop be left empty?

for循环的结构为for(clause; expression-2; expression-3){},当省略expression-2时,它将替换为非零常量。这是循环的一部分,它决定了它是否应该保持循环。当非零常量计算为true时,它将变为无限循环。

答案 3 :(得分:0)

for循环基本上表示以下三件事(每个东西用for循环中的分号分隔&#34;标题?&#34;):

  1. 不要初始化任何内容。
  2. 不要离开循环。
  3. 每次循环迭代都不执行任何后续操作。
  4. Wikipedia&#39; for循环页面实际上有一个关于此的部分。

答案 4 :(得分:0)

正如许多人所指出的那样,它相当于while (1)

什么时候有用?无论您需要无限循环,例如:

  1. 游戏循环 - 让游戏有点有用,无限循环直到用户决定退出游戏。
  2. OS调度程序 - 调度程序需要无限循环,根据某种算法调度进程直到操作系统停止
  3. 一个解释器 - 如果你曾经在python中编程,你可能会遇到一个解释器,它允许你键入一些命令然后执行它。这也是使用类似的无限循环
  4. 实现的

    在所有这些例子中,导致使用无限循环的共同因素是终止条件未知或终止条件复杂(例如游戏循环)