【问题标题】:Why while loop is showing 2 different outputs?为什么while循环显示2个不同的输出?
【发布时间】:2018-08-18 18:39:48
【问题描述】:

为什么 while 循环显示 2 个不同的输出?

      $a=1;
    while ($a++ <4) {
       echo $a. "<br>";

    }  // output is 2 3 4 but (4 is not less than 4 )



      $a=1;
    while (++$a <4) {
       echo $a. "<br>";

    }       // output is  2 3

请问,谁能详细解释一下区别? 在 $a++ 中它显示输出 2 3 4 但 4 在 while 条件下不小于 4 那么为什么它显示 4 不满足条件?

【问题讨论】:

标签: php while-loop


【解决方案1】:

简单的说,当++作为后缀时,php先执行while,然后在$a上加1个数,意思是in first while你的start $i为1。

而当++作为前缀使用时,php先给$a加1个数字,然后执行while,意思是last while你的start是2。

这与您的代码相同:

$a=1;
while ($a++ <4) {
   echo $a. "<br>";

}  // output is 2 3 4 but (4 is not less than 4 )
$a++;



$a=1;
$a++;
while (++$a <4) {
   echo $a. "<br>";

}       // output is  2 3

【讨论】:

  • 表示先$a++存储1,while循环执行后递增到2,回显值2
【解决方案2】:
  • ++$a 增加值之前执行

  • $a++执行后增加值

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-18
    • 1970-01-01
    • 2019-07-14
    • 1970-01-01
    • 2020-07-07
    • 2016-05-12
    相关资源
    最近更新 更多