【问题标题】:Why this print only 0,1,2为什么这个只打印 0,1,2
【发布时间】:2016-12-28 07:20:57
【问题描述】:

这个没有大括号的嵌套 for 循环只打印 0,1,2... 当回显第一个 for 循环的输出时,它会一直运行到 2.but 最终输出是 0,1,2.. 为什么会这样?

<?php 

    for($x = 0; $x<3; $x++) 
        for($x = 0; $x<3; $x++)
            echo $x;

?>

【问题讨论】:

  • 你的预期输出是什么?
  • 在内部循环中你使用相同的 var $x 它的创建问题
  • 执行第一次内部循环后 $x val 为 3.so 第一个循环的条件为假。并停止执行。
  • 不。它只打印 0,1,2.. 我认为它应该打印 0, 1, 2, 0, 1, 2, 0, 1, 2. 但只打印 0,1, 2..我认为它与花括号有关
  • 当我回显第一个 for 循环输出它的运行直到 2.

标签: php for-loop


【解决方案1】:

对于所需的输出 0,1,2,0,1,2,0,1,2

为循环变量更改第二个

因为变量相同,所以忽略了外循环的执行

for($x = 0; $x<3; $x++) 
        for($y = 0; $y<3; $y++)
            echo $y;

【讨论】:

  • it neglects the execution of inner loop 是什么意思?
  • 当我运行这段代码 for($x = 0; $x&lt;3;$x++) echo 'first'.$x.'&lt;br&gt;'; for($x = 0; $x&lt;3;$x++) echo 'second'.$x.'&lt;br&gt;'; 它给了我 first0 first1 first2 second0 second1 second2
  • 变量名相同的你只能从嵌套的for循环中执行内循环
【解决方案2】:

如你所问:

为什么只打印 0,1,2

for($x = 0; $x<3; $x++) //2nd time when it check the condition $x become 3; 3<3 fails
    for($x = 0; $x<3; $x++)//After this loop value of $x becomes 3
        echo $x; //

因为$x 的内循环值变为 3 并且外循环也失败了,因为您使用了相同的变量名,

您可以在这里查看:https://eval.in/705347

【讨论】:

  • 是的。但是当我删除括号外for循环执行直到2
  • 亲爱的,如果你不加括号,只会执行一行。意味着第一个循环将不再是外部循环,它将是单独的循环。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多