たられば構文「if」
これまでif文を使わずに書いてきたコードは、上から下へと一直線に落ちるだけの「滑り台」でした。計算をして、表示して、終わり。
退屈ですし、そこに知性はありません。
しかし、if文(イフぶん)を知った今日、あなたのプログラムは初めて「意思」を持ちます。
「もし100円持っていたら」
「もし夜中の12時を過ぎていたら」
状況に応じて行動を変える。これこそがプログラムの真骨頂であり、最強の武器です。条件によって未来を分岐させる方法を、骨の髄まで理解していただきます。
基本形:冷酷な門番「if」
ifは英語で「もし~ならば」。
プログラムの世界では、条件に合致した者だけを通し、合わない者を完全に無視する門番として機能します。書き方は極めてシンプル。
$score = 80;
if ($score >= 60) {
echo "合格!おめでとう";
}Code language: PHP (php)
これを翻訳します。
「もし、箱の中身($score)が60以上ならば、中カッコ {} の中を実行せよ」
条件を満たした時だけ、プログラムは{}の中に入り、命令を実行します。
では、59点だったら?
無視です。
何も表示されません。画面は真っ白。あたかも最初から存在しなかったかのように、次の処理へと素通りされます。これがデジタルの冷徹さです。
よく使う比較の記号(比較演算子)
ここで重要なのが「比較演算子」です。小学校の算数とは少し違います。
- $a > $b : $a は $b より大きい
- $a < $b : $a は $b より小さい
- $a >= $b : $a は $b 以上
- $a <= $b : $a は $b 以下
- $a === $b : $a と $b は 等しい
- $a !== $b : $a と $b は 等しくない
注意すべきは ===(イコール3つ) です。
以下の変数の記事では口を酸っぱくして言いましたが、= 1つは「代入(箱に入れる)」でした。
「中身が等しいか?」を確認するときは、必ず === と3回連打してください。
ここを間違えると、条件判定をするつもりがデータを上書きするという悲劇が起きます。
「3回?2回じゃないの?」という方もいらっしゃるかもしれません。
そちらについては、別記事で解説するため、本記事では割愛します。
else:敗者たちの受け皿
59点の人を無視するのは忍びない。「不合格」と突きつけてやるのが優しさというものです。
そんな時に使うのが、else(エルス)です。意味は「そうでなければ」。
if ($score >= 60) {
echo "合格";
} else {
echo "不合格。出直してこい";
}Code language: PHP (php)
これで完璧です。
条件に合うヤツはifの部屋へ。合わないヤツは全員まとめて強制的にelseの部屋へ叩き落とされます。
例外はありません。白か黒か。合格か不合格か。二者択一の世界が完成しました。
elseif:優柔不断な第三の選択肢
人生、白黒ハッキリつかないこともあります。
「合格じゃないけど、惜しいから追試」みたいなパターンです。あるいは、「ラーメン食べたいけど、店が閉まってたら牛丼、それもダメならコンビニ」という、わがままな連続条件。
ここで登場するのが elseif(エルスイフ) です。
$money = 500;
if ($money >= 1000) {
echo "特上寿司を食べる";
} elseif ($money >= 400) {
echo "牛丼を食べる";
} else {
echo "水を飲む";
}Code language: PHP (php)
判定は「早い者勝ち」
このコードの動きを見てください。上から順番に審査が行われます。
- 1000円以上あるか? → No。(500円しかない)
- じゃあ、400円以上あるか? → Yes! →「牛丼」を表示して終了。
- 最後のelse → 無視される。
ポイントは「一度どれかの条件に引っかかったら、残りは無視される」ことです。
仮に所持金が1万円あっても、最初の条件で「特上寿司」が決まったら、それ以降の牛丼チェックは行われません。プログラムは強欲ではないので、寿司と牛丼を同時に食べることはないのです。
{} の書き忘れは事故の元
プログラミング初心者がよくやるミス。それは波括弧 { } の対応関係を見失うことです。
「ここから」「ここまで」という範囲を示すこの記号を一つでも忘れると、プログラムは動かなくなります(構文エラー)。
テキストエディタの機能を使えば、対応する括弧をハイライトして視覚的にわかりやすくしてくれます。
コードを書くときは、インデント(行頭の隙間)をきれいに入れてください。見た目が汚いコードは、バグの温床であり、未来の自分へのテロ行為です。
// 悪い例:読みにくい
if($a==1){echo "はい";}else{echo "いいえ";}
// 良い例:処理の順番、リズムが見える
if ($a == 1) {
echo "はい";
} else {
echo "いいえ";
}Code language: PHP (php)
まとめ
if、elseif、else。これらは、あなたのプログラムに「判断力」を与えます。
- if:特定の条件を満たした時だけ実行する絶対的な命令
- else:選ばれなかった「それ以外」を拾う受け皿
- elseif:複数の条件を順番に試していく優柔不断なフィルター
- ===:「等しい」の確認は極力イコール3つ。1つだと事故る。2つでも場合によっては事故る
これでプログラムの流れ(フロー)を完全にコントロールできます。
一本道の単純作業は終わりです。
あらゆる状況に対応できる、賢いプログラムを組み上げていってください。条件分岐の先には、無限の可能性があります。



コメント