今回はwhile文の学習です。

今回二人に学んでもらうのは、PHPのwhile文です。while文の特徴は、if文とfor文の両方の性質を持ち合わせていることですね



この時点で、すでに難しそうなんですが……



そんなことはないので安心してください。 これまでにif文とfor文を理解できたのなら、while文も必ず身に付きますよ



では、今回も頑張って学習していきましょう!
PHPの学習:while文の書き方と使い方



まずはwhile文の特徴について紹介していきます。



まずはwhile文の特徴からですが……if文とfor文の役割を併せ持った命令とは、もう伝えましたね。 条件が一致するまでループを繰り返すのが、大きな特徴です
while文の書き方は簡単で、下記のように書きます。
While(条件式){
実行される処理
}
これだけで、for文とif文を併せ持ったプログラミングを作ることが出来ます。



んん? なんか簡単すぎて、逆に不安になるなぁ 本当にこれだけ?



はい。これだけですよ。 ただ大きな注意点があるので覚えておいてください
while文は「条件が一致した場合のみ処理を実行させて、それ以外は該当の条件が来るまで繰り返す」処理をするのですが……条件に一致するまで永久にループを繰り返すことになるので、プログラミングを間違えると無限ループになってしまう可能性があります。



もしも間違って無限ループさせてしまったら、どうなるんですか?



パソコンが長々と無駄に働くので、サーバーのリソースを無駄に使用したり、メモリも消耗します。 簡単に言うとパソコンの消耗の原因になってしまうんですよ。 だから、注意してくださいね
さて、注意点を抑えたところでwhile文の具体的な学習をしていきましょう。
while文の書き方



while文はif文とfor文を合わせた命令なので、今まで学習した内容を理解していればすぐに習得できます。 while文の書き方を見てみましょう。






これがwhile文を使ったときの書き方です。それぞれの命令に注目していきましょう
まずは「$number=1」についてですが、これはnumberという変数に1という数字を保管しています。
while文での条件式は、for文のように条件式の中で新たに変数を作る仕組みではないので、あらかじめ設定しないといけません。
次にwhile文の条件式ですが、今回は「$numberが10未満のときにループする」という処理にしています。そして、処理の中では$numberの変数の数値の移り変わりが分かるように表示。
最後に「$number++」という命令についてですが、この命令を書いておかないと$numberの数値が変動しません。永遠に「1回目のループです」を繰り返してしまいます。



このループを繰り返していくと、最終的にどうなると思いますか?



数字が1つずつ増えていくけど、数字が10になったらもうループしなくなります。 だから、9回めのループで止まると思います



いいですね! 正解です。 「出力結果」も9回めのループで止まっていますね
牛山くんが言うように、ループを繰り返していきますが、$numberの数値が10になると「10未満のときにループする」という条件に合致しなくなります。すると、そこでループは終了です。
PHPの復習:for文とif文とwhile文






これまでにfor文とif文、while文を学習しましたね。実は、この3つの命令は使用頻度が非常に高いので、セットで覚えるのが基本です



おー だから連続で学習したんだね



極端な話をすれば、この3つの命令を理解すれば、あと少しの仕組みを覚えるだけで基本的なプログラミングを構築できるんですよ



なんと!
そのくらい重要な3つの命令文なので、今回の講義ではそれぞれの命令を再確認していきましょう。
PHPの復習①:条件分岐の基本となるif文



条件分岐は、基本的に「◯◯ならば▲▲する」というように、「条件を定めて条件に合致すれば処理を実行する」と考えれば問題ありません。
PHPを使用する中で、条件に合致すれば処理を実行するシーンはたくさんあります。



たとえば、どんなとこで使われるの?
ホームページにお問い合わせフォームが設置されていることは多いですね。このお問い合わせフォームでは「お問い合わせフォームの特定のテキストボックスの中に文字列が記入されれば実行する」という処理しています。この処理にはif文が使われます。
ただし、状況によっては文字が入力されていないと次のページに進まない(ループする)状況にもなります。その場合に使われるのはif文ではなくwhile文です。
基本的にはif文が担当する分野ですが、ときにはwhile文が担当していると覚えておきましょう。
PHPの復習②:ループ処理をする際は、まずfor文から考える
for文は「ループする回数が始めから決まっている」ケースでよく使われます。



たとえば? たとえば?
商品管理や売上管理のように項目数が決まっていて、「その項目がある限りはループを停止しない」処理を担当させるのに向いています。
もちろん、ループの終着点となる項目や数値をwhile文を使って条件付けすれば同じように処理をすることが出来ます。ただし、あらかじめループ回数が決まっているのならばfor文のほうが使いやすいでしょう。
このように、for文とwhile文は使い分けると、よりスマートなプログラミングができるようになります。
PHPの復習③:条件重視のループ処理にはwhile文を使う
while文は、for文とif文の2つの性質を併せ持っています。そのため、while文を使わずに、for文とif文を駆使してプログラミングすることも可能です。



では、どんなときにwhile文を使うといいんですか?
「ループ回数を重視する」のか「条件を重視するのか」がポイントです。条件を重視してループ処理を実行する場合はwhile文のほうが良いでしょう。
大昔のプログラミングでは、サーバーのリソースを考えてプログラミングをしなければならなかったために、for文とwhile文の明確な使い分けがありました。しかし、近年では構築するプログラムの規模によってサーバーのリソースを確保するのが一般的です。 そのため、プログラミングの処理についてそれほど考えなくても良くなったのが大きな進化と言えます。
テスト:while文を使ってプログラミング!






では、恒例の練習問題のお時間です。 今回も頑張ってくださいね
テスト内容
今回はwhile文について学習してきましたが、while文はfor文のように基本的にはループ処理を行う命令文となっています。 そこで今回は、前々回に学習したfor文で作ったプログラミングをwhile文で作り直してみましょう。



こちらが前々回のfor文を学習した際に作成したプログラミングです。これをwhile文に変換して、全く同じ出力結果が表示されるようにするのが練習問題です。



うぉおおおおおおおお! がんばるぞー
テストの答え合わせ



さて、できましたか? 答え合わせをしてみましょう



こちらが答えです。
for文の処理と異なるポイントを解説します。for文は、for文の中に新たな変数や条件式、増減式などが全てセットになっていました。 しかし、while文ではそれらのパーツを全てバラバラに表記することになります。上記の画像のようになれば正解です。
PHPの学習:while文のまとめ






さて、今回はwhile文についての学習、そしてif文とfor文の復習を行いましたね。二人ともどうでしたか?



なんとか頑張れた気がします



わたしもー
今回の練習問題ではfor文をwhile文に変換するという形で紹介しましたが、foreach文でも同じようにすることが出来ます。
ただしforeach文の場合は前回学習したとおり、配列専門のfor文となっていますので、その点に注意して使用しなければいけません。 次回はプログラミングを楽にする「関数の作り方や使い方」を紹介する予定です。



次回もがんばるぞー
コメント