【週刊ドットインストール】 考える力を養うための新クラス『データで学ぶアルゴリズム』を256timesでリリース!
while文は、下のように()内の条件を満たす間、{}内の処理を繰り返す、というイメージを持っています。 このとき、{}内2行目の$i += 2;があることで、()内で検証される条件が1, 3, 5…と変化していくので、 いつかは条件を満たさなくなると思っています。
while
()
{}
$i += 2;
1
3
5
$i = 1; while(10 >= $i){ echo $i . PHP_EOL; i += 2; }
もし、$i += 2;の条件が抜けている場合、ずっと$i=1なので、while文の中身が永遠にループすると思っています。
$i=1
$i = 1; while( $i >= 10){ echo$ i . PHP_EOL; }
今回は、fgets($fp)の値がtrueの間はwhile文を実行しています。 ただ、上の$i += 2;のような条件が変化するための式がありません。 fgets($fp)の戻り値が配列(例えば[true, true, true, true, false])になっていて、一つずつ取り出してfalseかどうかを判定しているのかと思っていたのですが、戻り値は配列ではありませんでした。 下記コードはどのような理屈でくりかえされているのでしょうか?
fgets($fp)
true
[true, true, true, true, false]
false
while (($line = fgets($fp)) !== false) { echo $line; }
ドットインストールは、3分動画でマスターできるプログラミング学習サービスです。
3分で気軽に学習でき、スマートフォンからも視聴可能です。ホームページやWebサービスの制作を通して、実践的にプログラミングを学べます。
他にも、ゲーム制作やデータ分析・機械学習・AIに使われる言語まで幅広くカバー。学びたい分野のレッスンがきっと見つかります。
この回答を見るにはプレミアムプランへの登録が必要です
while文は、下のように()内の条件を満たす間、{}内の処理を繰り返す、というイメージを持っています。このとき、
{}内2行目の$i += 2;があることで、()内で検証される条件が1,3,5…と変化していくので、いつかは条件を満たさなくなると思っています。
もし、
$i += 2;の条件が抜けている場合、ずっと$i=1なので、while文の中身が永遠にループすると思っています。今回は、
fgets($fp)の値がtrueの間はwhile文を実行しています。ただ、上の
$i += 2;のような条件が変化するための式がありません。fgets($fp)の戻り値が配列(例えば[true, true, true, true, false])になっていて、一つずつ取り出してfalseかどうかを判定しているのかと思っていたのですが、戻り値は配列ではありませんでした。下記コードはどのような理屈でくりかえされているのでしょうか?