【问题标题】:For loop explanation what does for(;;) meanFor 循环解释 for(;;) 是什么意思
【发布时间】:2016-07-11 00:52:36
【问题描述】:

我查看了一些开源代码并遇到了这个......

for(;;) {
   echo "a:" . $throttle->throttle($identifier, 5, 1000);
}

什么是;;代表在 for 语句中 - 我以前从未遇到过?

【问题讨论】:

  • 它只是创建一个无限循环,在迭代过程中没有初始化、终止或调整的条件......我个人更喜欢while(true),因为它的含义更直观
  • 太棒了 - 我得到了它的工作并实现了同样的 :) 随时添加它作为我接受的答案

标签: php for-loop syntax conditional-statements


【解决方案1】:

这是一个无限循环。 for循环的剖析是

  for (initialization_expression ; test_condition; update_expression) 
  {
        // Code 
  }

在您的情况下,所有 3 个部分都丢失了。由于缺少测试条件,它将评估为真并且循环将永远继续。

【讨论】:

    【解决方案2】:

    for(initialization;condition;increment/decrement) 的语法 所以 initialization 在 for 循环开始之前被调用一次。 最后两个参数在每次迭代后进行评估。

    现在如果你去掉终止条件,它就相当于一个while(true) 循环。 与您的问题一样,其他参数也被忽略,因为它们也是可选的,在您的情况下不需要。

    【讨论】:

      【解决方案3】:

      语法在语言参考→控制结构→for(强调我的):

      for (expr1; expr2; expr3)
      

      [...]

      每个表达式可以为空或包含多个用逗号分隔的表达式。在 expr2 中,所有表达式分开 用逗号计算,但结果取自最后一部分。 expr2 为空意味着循环应该无限期地运行(PHP 隐含地将其视为 TRUE,就像 C 一样)。这可能没那么没用 正如您可能想的那样,因为通常您希望使用 a 来结束循环 条件 break 语句,而不是使用 for 真值表达式。

      【讨论】:

        【解决方案4】:

        这是一个无限循环。在典型的 for 循环中,分号之间有表达式。如果您将其留空,则意味着这是一个永无止境的循环。

        【讨论】:

          【解决方案5】:

          和while(true)一样,是一个无限循环。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-02-18
            • 2019-03-09
            • 2011-06-21
            • 1970-01-01
            • 1970-01-01
            • 2020-09-28
            相关资源
            最近更新 更多