プログラミング

if文を使ったPHPの学習【条件分岐を遊びながら学んでみる】

いぬ
いぬ
PHPで基礎中の基礎と言われる「if文」ですが、きちんと理解できていますか?遊びながら楽しくif文を学んでみたいと思います。

【ネタバレ】プログラミング学習は遊びながら行うと記憶に定着します。(僕の場合)

本記事では、以下の内容を解説します。

本記事の内容

・if文の基本的な書き方。

・if文の構成。

・if文を使って遊んでみる。

この三本構成です。

この記事を読むと分かること or どんな人に読んで欲しいかを簡潔に書く

  1. PHPは初心者向けの言語と言われているがとんでもない……
  2. 基礎に触れることで、少しだけPHPの理解が深まります。

PHPの基礎と言われているif文

クラウド, プログラマ, プログラミング言語, プログラミング, コンピューター

まずif文とはどんなものなのか概要から見てみたいと思います。

<?php

if(条件式) {

echo "(出力したい結果)";

?>

「echo(エコー)」を使って条件式の内容に合った結果を出力します。

またはprintを使って同じように出力したい結果を入力する方法もあります。

<?php

if (条件式) {

print '(出力したい結果)';

?>

echoとprintは、ほぼ同じ役割を持っていますが、厳密に言うとちょっと違います。echoは式ではなく、printは式に使われる物という認識で大丈夫です。使っていくうちに明確な違いに気づくことができるので、現段階では特に気にしなくてOKです。

いぬ
いぬ
echoを使うとエラーが出る場合もあるんだな〜!だったらその場合式なので、printを使おう!

くらいの気持ちで今はOK!

ではif文の話に戻ります。

if文は、「条件分岐」と言われ、主に選択が必要な場合に役に立つ書き方です。

ショッピングサイトの検索や、不動産サイトの検索など、日常利用するwebサービスにはだいたいPHPが使われていると言っても過言でないくらいです。

if文を説明する上で条件分岐は避けて通れない道です。

<?php

//if文の概要と構成について

if( if文の条件 ) {

実行される結果①

} elseif ( if文の条件2 ) {

実行される結果②

} else { 

条件が間違っている場合に実行される結果③

}

?>
いぬ
いぬ
条件分岐って、何だか難しそう。

上のコードの様に、条件が多く、細かくなってくると難しく感じるかもしれません。

めちゃめちゃ大雑把ですが、if文を見ていきたいと思います。

if文での命令と条件分岐

「もしもRPGに登場する店のNPCがすごくムカつく奴だったら」

空, 山, ゲーム, ステージ, Rpg, 城, 風光明媚な, 風景, 庭, 雲

例えば、$xという変数にある数字を代入して、それが正しいのか間違いなのかを判別する構文を書いてみます。

個人的にイメージしやすい様に、「新発売のスマホを購入するため、客に対して割と厳しいことで知られているお店に買い物に行った。」というシーンで話を進めてみます。

いぬ
いぬ
そんな店あるかなぁ…
<?php

//新型スマートフォンの値段は¥100,000.です。

$x = 100000;

if ($x === 100000) {

print 'ありがとうよ。早速装備していくかい?';

} else {

print '金が足りねぇな。おととい来やがれ!';

}

?>

ブラウザにif文の結果を出力してみます。

おじさん if文①

お分かりかと思いますが、簡単に解説します。

$x(スマホの値段は10万円だよ!)に対し、「 === 」を使って「$xは10万円です。」と言っています。

この場合のシチュエーションが買い物なので、お金を10万円払ったことになります。

最初に$xを10万円と決めていたので、同じ金額を支払うと店主が購入を許し10万円でスマホを売ってくれました。

いぬ
いぬ
新型スマホ、ゲットだぜ!

では、もし手持ちの金額が10万円以下だった場合を見て見ましょう。

<?php

//新型スマートフォンの値段が¥100,000.だったとします。

$x = 100000;

if ($x === 50000) {

print 'ありがとうよ。早速装備していくかい?';

} else {

print '金が足りねぇな。おととい来やがれ!';

}

?>

結果はこんな感じです。

おじさん if文②

手持ちの金額が足りなかった為、店主の親父さんに怒られた上、購入できませんでした。

いぬ
いぬ
おととい来やがれ!って、初めて言われたわ……

これでif文がどういった挙動をするのか、なんとなくイメージできたと思います。

上のif文は超絶基本的なことを示しているので、細かに突っ込みたい部分があるかと思いますが、許してください。

では、条件分岐を細かくし、かつ不確定要素が加わったらどうなるでしょうか。

次はランダムでやってみたいと思います。

もう少し条件を細かくしたif文

ストア, オンライン ストア, ショップ, オンライン ショップ, 市場

上と同じシチュエーションで、もう少し人間的になった店主の親父さんのリアクションを追加してみたいと思います。

今回は、上の店と同じ親父に話しかけた時に返ってくる返答を、11パターン作成してみました。

RPGで、町によくいるNPCをイメージしてください。

※(NPCとは、「ノン・プレイヤー・キャラクター」と呼ばれ、主な登場人物ではないキャラクターの総称です。だいた村人Aとかそういうキャラクターを指す言葉です。)

<?php

// 店主の親父に話しかけた時のリアクションをランダムで表示

$reaction = rand(1,15);

echo "reactionの番号:".$reaction." \n";

if($reaction === 1){

echo "がはは!昨日最新スマホを売って儲かったから、今日は気分がいいんだ。";

} elseif($reaction === 2) {

echo "今日はいい天気だな。";

} elseif($reaction === 3) {

echo "どうだ?今なら最新スマホが、なんと¥100,000でお買い得だぜ!";

} elseif($reaction === 4) {

echo "どうだ?今なら最新スマホが、なんと¥150,000でお買い得だぜ!しかも今なら「はがねのケース」付きよ!";

} elseif($reaction === 5) {

echo "どうだ?今なら最新スマホが、なんと¥200,000でお買い得だぜ!ゲヘヘ";

} elseif($reaction === 6) {

echo "ヘイ。いらっしゃい。何かお探しですか?";

} elseif($reaction === 7) {

echo "(最近、バカな客が増えて笑いが止まらねぇな。)";

} elseif($reaction === 8) {

echo "最新のスマホを格安で取り扱ってるのは、あっしの店だけですぜ。";

} elseif($reaction === 9) {

echo "なんだ?俺の顔になんか付いてるのか?";

} elseif($reaction === 10) {

echo "ようこそ!信頼と真心の「親父のガジェットショップ」へ。";

} else { 

echo "なんだ?客じゃねぇなら、とっとと消えな。俺は忙しいんだ。";

}

?>

今回はランダムで親父の憎たらしいリアクションを表示します。

$reaction = rand(1,15);で、1〜15までの数字をランダムで代入し、それに合った返事をするという流れです。

ランダムなのでこんな感じになりますね。

おじさん reaction4 reaction4-2

別パターンだとこんな感じ。

おじさん reaction7

最後に11から15までの場合。

おじさん reaction11-15

11〜15、elseのリアクションは、「1〜10に設定した条件以外だと○○を表示します。」という意味になります。

NPCの場合、会話がワンパターンなのでこのくらいバラエティ豊かだと、RPGがもっと面白くなると思うんですよね。

ただ、こんなNPCがゲームに登場したら腹たつと思いますけどね。

いぬ
いぬ
戦っていいのなら、開戦待った無しです。

という訳で、「もしもRPGに登場するNPCがすごくムカつく奴だったら」のシチュエーションでの条件分岐でした。

if文は「if」や「elseif」、「else」を組み合わせることで、様々な条件結果を表示することが可能です。

他にも細かく設定できますので、オリジナルの面白い設定を組んで遊んでみてください。

if文に限らず、プログラミングの学習は遊びながら学んだ方が楽しくて身につきやすいと思っています。

どうでしょうか。

プログラミングもやり方次第では、ゲーム感覚で学習することができます。

覚えるし、楽しいし、自身でちょこっと手を加えれば格段に面白くなります。

まとめ

記事のポイントをまとめます。

if文、条件分岐のまとめ
  1. プログラミングの学習は遊びながら学ぶ!
  2. 身近な題材にするとイメージが湧くので分かりやすくなる。
  3. if文はPHPの登竜門です。

今回、すごく雑ですがif文の条件分岐について解説してみました。

例を挙げればキリがないのですが、他にももっと面白い構文がたくさんあります。

技術書とかだと、例文の内容がスーパー海外生活ベースになっていて、日本で聞かない食材とかが英語でガンガン表示されて分かりません。

「あれ?これって何て読むんだろう?変数かな?ん???」ってなって意味を調べたら、「○○ナッツ」とかで理解不能です。

だったら、自分のイメージしやすい内容に書き換えて勉強した方がサクサク進みます。

PHPの学習を始めたけど、if文って何だかよく分からない……という方がいれば、少しでもお力になれたら幸いです。

いぬ
いぬ
ここまで読んでくれて、
どうもありがとう!