質問: ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/d2a391c28d338d1a98057f944a643f63.png) 入力した終了値が、**echo $i;**で出力されるのはなぜでしょうか? for文から外して、echoで入力した終了値がなぜ出力されるのかわかりません。for文の論理演算子も「<」を利用しているのに。 echo $end; ならわかるのですが。。。。 ``` sample 開始値 終了値 ```
回答: for分の動作を考えてみると良いと思います。開始を1,終了を3として考えてみると... 1処理1回目 $iに$start(つまり1)が入り、echo 1,されます。 2処理2回目 $i++により$iには2がはいり、echo 2,されます。 3処理3回目 $i++により$iには3がはいります。よって$i<$end(つまり3<3)に当てはまらなくなり、forの中のechoはされません。 4forの後のecho 3の時点で$iには3が入っていますので、echo3になります。 結果、出力結果は1,2,3となるのでしょう。