0

当您尝试此代码时,结果是...数字是 1

<?php
$i=1;
do
  {

  echo "The number is " . $i . "<br />";
    $i++;

  }
while ($i==10);
?>

但是当您将此代码更改为这样时,结果为 2

<?php
$i=1;
do
  {

    $i++;
      echo "The number is " . $i . "<br />";


  }
while ($i==10);
?>

那么为什么结果改变了..?

4

4 回答 4

2

$i++; 是post increment operator so it will increment value by 1 on next line并且它在当前行上使用相同的值

第一种情况:你在做 echo $i 然后做增量

第二种情况:你在 echo 语句之前增加 $i++ 所以本质上它会在 echo 行上增加 1

于 2012-10-20T08:46:29.967 回答
0

你会得到不同的结果,因为你在做两件不同的事情。在第一个代码片段中,您设置$i了 的值1,将其回显,然后递增$i

在第二个代码片段中,您设置$i1,增加它(即,给它的值2然后echo $i,它现在的值是2

于 2012-10-20T08:47:05.260 回答
0

是的,结果会有所不同。在第一种情况下,您在打印后递增。而在第二种情况下,您在打印之前递增

于 2012-10-20T08:47:40.660 回答
0

在这两种情况下,do-while 循环的第一次迭代都保证运行。仅在迭代结束时检查条件。

并且,在 case1 中,您在递增之前打印了变量。所以它显示1。在case2中,您在增加变量后打印了变量。所以它显示2。

于 2012-10-20T08:53:56.743 回答