解释替代PHP For循环语法:for($ i = 1,$ j = 0; $ i< = 10; $ j + = $ i,print $ i,$ i ++);

时间:2015-12-13 07:09:43

标签: php for-loop

此示例已作为在PHP.net上编写for循环的替代示例(准确示例4)。

for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++);

我理解for循环,我只是不明白为什么变量$j在此版本中编写了一个打印数字1到10的for循环。

FYI:从for循环中删除变量对结果没有任何影响。

3 个答案:

答案 0 :(得分:4)

我认为这只是为了说明你可以用逗号使用多个语句这一事实 它在这里没用,但是显示了以下语法的示例:

  

[...]每个表达式都可以为空或包含用逗号分隔的多个表达式。在expr2中,将使用逗号分隔所有表达式,但结果取自最后一部分。 [...]

答案 1 :(得分:3)

虽然在这个例子中似乎没有必要。似乎$j存储迭代的总和:

 1+2+3+4+5+6+7+8+9+10 = 55

在某些情况下这可能很有用。因此,这意味着这种循环方式相当于在每次迭代时执行多次操作,例如获取求和,平均值,最大值等。示例的要点是您可以应用以逗号分隔的多个语句。 / p>

答案 2 :(得分:2)

解释

for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++);

for循环由分号(;)分隔三部分。

  1. 初始化
  2. 比较并测试
  3. 递增或递减。

    • 这里$ i = 1,$ j = 0是初始化。
    • $ I&LT; = 10;是比较和测试
    • $ j + = $ i,print $ i,$ i ++是增加或减少部分
  4. 现在在你的增量或减量部分你有三个任务  1.最后$ i增加$ j  打印$ i  3.将$ i增加1

      

    所以在你的程序中,$ j没用。因为它没有参加   打印或比较和测试。

    因此,如果从每个位置删除$ j并将其写为

    ,则循环非常简单
    for ($i = 1; $i <= 10; $i++){
        print $i;
    }
    

    但是这个$ j变量可以在循环之后使用,你可以使用这个代码块。

    <强> LIKE

    for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++); 
    print $j;