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 を実行してから、インクリメントを実行しています

2 番目のケース: echo ステートメントの前に $i++ をインクリメントしているため、本来、echo 行で値が 1 増加します。

于 2012-10-20T08:46:29.967 に答える
0

どちらの場合も、do-while ループの最初の繰り返しは実行されることが保証されています。条件は反復の最後にのみチェックされます。

そして、ケース1では、インクリメントする前に変数を出力しました。したがって、1が表示されます。ケース2では、変数をインクリメントした後に出力します。したがって、2 と表示されます。

于 2012-10-20T08:53:56.743 に答える
0

2 つの異なることを行っているため、異なる結果が得られます。最初のコード スニペットでは$i、値を に設定し1、それをエコーし​​てから、インクリメントします$i

2 番目のコード スニペットでは、 に設定$i1、インクリメントして (つまり、 の値を指定2) 、次にecho$iを実行します。この値は の値になり2ます。

于 2012-10-20T08:47:05.260 に答える
0

はい、結果は異なります。最初のケースでは、印刷後にインクリメントしています。2番目のケースでは、印刷する前にインクリメントしています。

于 2012-10-20T08:47:40.660 に答える