回答受付が終了しました

ID非公開

2022/6/29 22:37

11回答

<?php // ***1 // **121 // *12321 // 1234321 for($i = 1; $i <= 4; $i++){

PHP38閲覧

回答(1件)

0

> for文の1つ目が真ん中の縦の1~4になる 結果的にそうなるけれど... > *が上の左から > 左側の > 右側の > がどの式に該当しているのか *を出力している所は一つしかないから直ぐ判りますよね? > for($b = 3; $b >= $i; $b--){ echo('*'); } $i が 1 の時、$bは 3、2、1と変化していき、その次に 0 となった時点でループを抜けます。 (抜ける時には * は出力されないので3回 * が出力される) その後、 > for($c = 1; $c <= $i; $c++){ echo $c; } で $c は $i と同じ値になるまで1から順に出力されます。 ($i が1 なら、1 だけ、$i が 2 なら、12となる) > for($d = 3; $d >= 6 - $c; $d--){ echo $d - (4 - $i); } で、何やら出力されるはずだけど、$i が 1 の時、ループの継続条件に合致しないので1度も { } 内が処理されない。 __変数がどんな値で、式を計算するとどんな値になるのかを __自力で計算してみると理解し易いはず ただしこの記述の仕方は、この上のループ変数 $c をループ外で使用しているので、好ましい使い方とは言えない。 __バグ、あるいはバグの一歩手前と判定される場合も その後、改行文字が出力されて、$i が 1 の場合が終了するので、最初のループの2回目へ。