プログラミングや動画編集の勉強ならCANIT (キャニット)

PHP基礎編7:ifとforが合わさったwhileを覚えるとプログラミングが短く出来る

PHP入門

今回はwhile文の学習です。

CANIT先生
CANIT先生

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

猫田さん
猫田さん

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

CANIT先生
CANIT先生

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

牛山くん
牛山くん

では、今回も頑張って学習していきましょう!

PHPの学習:while文の書き方と使い方

プログラマー

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

CANIT先生
CANIT先生

まずはwhile文の特徴からですが……if文とfor文の役割を併せ持った命令とは、もう伝えましたね。 条件が一致するまでループを繰り返すのが、大きな特徴です

while文の書き方は簡単で、下記のように書きます。

While(条件式){

  実行される処理

これだけで、for文とif文を併せ持ったプログラミングを作ることが出来ます。

猫田さん
猫田さん

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

CANIT先生
CANIT先生

はい。これだけですよ。 ただ大きな注意点があるので覚えておいてください

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

牛山くん
牛山くん

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

CANIT先生
CANIT先生

パソコンが長々と無駄に働くので、サーバーのリソースを無駄に使用したり、メモリも消耗します。 簡単に言うとパソコンの消耗の原因になってしまうんですよ。 だから、注意してくださいね

さて、注意点を抑えたところでwhile文の具体的な学習をしていきましょう。

while文の書き方

学習

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

CANIT先生
CANIT先生

これがwhile文を使ったときの書き方です。それぞれの命令に注目していきましょう

まずは「$number=1」についてですが、これはnumberという変数に1という数字を保管しています。

while文での条件式は、for文のように条件式の中で新たに変数を作る仕組みではないので、あらかじめ設定しないといけません。

次にwhile文の条件式ですが、今回は「$numberが10未満のときにループする」という処理にしています。そして、処理の中では$numberの変数の数値の移り変わりが分かるように表示。

最後に「$number++」という命令についてですが、この命令を書いておかないと$numberの数値が変動しません。永遠に「1回目のループです」を繰り返してしまいます。

CANIT先生
CANIT先生

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

牛山くん
牛山くん

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

CANIT先生
CANIT先生

いいですね! 正解です。 「出力結果」も9回めのループで止まっていますね

牛山くんが言うように、ループを繰り返していきますが、$numberの数値が10になると「10未満のときにループする」という条件に合致しなくなります。すると、そこでループは終了です。

PHPの復習:for文とif文とwhile文

プログラマー
CANIT先生
CANIT先生

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

猫田さん
猫田さん

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

CANIT先生
CANIT先生

極端な話をすれば、この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文を使ってプログラミング!

女性
CANIT先生
CANIT先生

では、恒例の練習問題のお時間です。 今回も頑張ってくださいね

テスト内容

今回はwhile文について学習してきましたが、while文はfor文のように基本的にはループ処理を行う命令文となっています。 そこで今回は、前々回に学習したfor文で作ったプログラミングをwhile文で作り直してみましょう。

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

猫田さん
猫田さん

うぉおおおおおおおお! がんばるぞー

テストの答え合わせ

CANIT先生
CANIT先生

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

こちらが答えです。

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

PHPの学習:while文のまとめ

パソコン 猫
CANIT先生
CANIT先生

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

牛山くん
牛山くん

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

猫田さん
猫田さん

わたしもー

今回の練習問題ではfor文をwhile文に変換するという形で紹介しましたが、foreach文でも同じようにすることが出来ます。

ただしforeach文の場合は前回学習したとおり、配列専門のfor文となっていますので、その点に注意して使用しなければいけません。 次回はプログラミングを楽にする「関数の作り方や使い方」を紹介する予定です。

猫田さん
猫田さん

次回もがんばるぞー

❤内容は役に立ちましたか?皆さまのご意見が励みになります☺
YesNo
手に職をつけてプログラマー転職

そろそろ本気で将来のことを考えなくちゃ……手に職をつけてプログラマーやエンジニアに転職したいなぁ。でも、プログラミングスクールってものすごくたくさんあるし、なんか敷居が高いのよね

これからプログラマーやエンジニアへの転身を目指すあなたに、どのスクールがもっとも適しているのかを紹介します。

PHP入門
【この記事を書いた人】
CANIT 先生

あらゆるプログラミング言語をあやつるフリーの凄腕講師。温和な性格で「わかるまで教えます」がモットー。たまに時間ができると動物の仲間達に、プログラミングを教えることもある。現在の生徒は牛山くんと猫田さん。

CANIT
タイトルとURLをコピーしました