else を一言でいうと
else は、
「if の条件が成り立たなかったときに実行する“もう一方の処理”」を書くためのキーワードです。
日本語で言うと、
「もし条件を満たしていれば A をする。そうでなければ B をする。」
この「そうでなければ」の部分が else です。
ここが重要です。if は「条件を満たしたときだけ」のコード、else は「その条件を満たさなかったときだけ」のコード。
この二つがセットになることで、プログラムは「どっちか一方」を必ず選ぶことができます。
if と else の基本構造
最も基本的な形は次のようになります。
if (条件) {
// 条件が true のときだけ実行される
} else {
// 条件が false のときだけ実行される
}
JavaScriptここで大事なのは、「どちらか片方だけが実行される」という点です。
条件が true なら if の中だけが実行され、else の中は完全にスキップされます。
条件が false なら if の中は一切実行されず、else だけが実行されます。
つまり、
「条件が true の場合の道」と「条件が false の場合の道」の、二本の道を用意しているイメージです。
実行時には必ずどちらか一方の道を通ることになります。
最初の例:合格と不合格を分ける
点数によって「合格」「不合格」を表示したいとします。
ルールは「70 点以上なら合格、それ以外は不合格」です。
const score = 80;
if (score >= 70) {
console.log("合格です");
} else {
console.log("不合格です");
}
JavaScriptこの場合は、score >= 70 が true なので「合格です」と表示されます。
一方、score が 60 のときはどうなるでしょうか。
const score = 60;
if (score >= 70) {
console.log("合格です");
} else {
console.log("不合格です");
}
JavaScriptscore >= 70 が false なので、if の中は実行されず、else の中だけが実行されて「不合格です」と表示されます。
ここが重要です。if と else をセットで使うと、「条件を満たしても満たさなくても、どちらかのメッセージは必ず出る」状態が作れます。
「条件を満たしたときだけ何かしたい」のか、「どちらにしても必ずどちらかの処理をしたい」のかで、else を使うかどうかが変わってきます。
条件式と else の関係を噛み砕いて考える
if (条件) { ... } else { ... } では、else には「条件そのもの」は書きません。else は常に「if の条件の逆の場合」を意味するからです。
例えば、次のコードを見てください。
const age = 20;
if (age >= 18) {
console.log("成人です");
} else {
console.log("未成年です");
}
JavaScriptここでの条件は age >= 18 です。
この条件が true のときは「成人」、false のときは「未成年」です。
もし「age < 18 のとき」と書きたいなら、本来はこう書けますが、
if (age >= 18) {
console.log("成人です");
} else if (age < 18) {
console.log("未成年です");
}
JavaScriptこの else if (age < 18) は、実は else とまったく同じ意味になっています。
なぜなら、「age >= 18 ではない」とき、それは必ず「age < 18 のとき」だからです。
初心者のうちは、「else の後ろに条件を書かなくていいのが逆に不安」かもしれません。
でも、else は「直前の if が false だったとき」という暗黙の条件を持っている、と理解してください。
else が「必要なとき」と「いらないとき」
「必ずどちらか一方を実行したい」ときは else を使うべきです。
逆に、「条件を満たしたときだけ何かしたい。満たさないときは何もしたくない」なら、else は不要です。
例えば、「70 点以上なら合格と表示したい。70 未満なら何も表示しなくていい」なら、こうです。
const score = 65;
if (score >= 70) {
console.log("合格です");
}
JavaScriptこの場合、score が 65 のときは何も表示されません。
「何もしない」というのも立派な選択肢です。
一方、「合格か不合格か、どちらかは必ず表示したい」なら else を使います。
if (score >= 70) {
console.log("合格です");
} else {
console.log("不合格です");
}
JavaScriptここが重要です。else は「条件が false のとき“必ず何かをする”」ためのものです。
「false のときは何もしなくていい」なら、あえて書かなくても構いません。
この違いを自分で言葉にできるようになると、「本当にここに else が必要か?」を判断できるようになります。
具体例で else の使いどころをイメージする
ログイン状態で表示を出し分ける例を考えてみます。
ログインしていれば「マイページへ」、していなければ「ログインしてください」と表示したい場合。
const isLoggedIn = false;
if (isLoggedIn) {
console.log("マイページへ");
} else {
console.log("ログインしてください");
}
JavaScriptisLoggedIn が true なら「マイページへ」、
false なら「ログインしてください」です。
どちらの場合も、ユーザーに何かメッセージを返している、ということがポイントです。
もうひとつ例を挙げます。残高でメッセージを変える場合です。
const balance = 0;
if (balance > 0) {
console.log("残高があります");
} else {
console.log("残高がありません");
}
JavaScriptbalance が 0 のときは、「残高がありません」が表示されます。
balance が 100 なら、「残高があります」が表示されます。
このように、else は「状況に応じてメッセージや処理をきちんと分ける」ために使われます。
何も出さないより、必ず何かを通知したい場面で特に重要になります。
else のブロックと波かっこの大事さ
if と同じく、else でも波かっこ {} の範囲はとても重要です。
const score = 80;
if (score >= 70)
console.log("合格です");
else
console.log("不合格です");
console.log("お疲れさまでした");
JavaScriptぱっと見、「合格のときは『合格です』と『お疲れさまでした』、不合格のときは『不合格です』と『お疲れさまでした』が出るように見える」かもしれませんが、実際には違います。
実際の解釈は次の通りです。
if (score >= 70)
console.log("合格です");
else
console.log("不合格です");
console.log("お疲れさまでした");
JavaScriptつまり、「お疲れさまでした」は if / else に関係なく、常に実行されます。
もし、両方のパターンでも共通して実行したいならそれでいいのですが、
もし「条件に応じて全部分けたい」なら、必ずブロックを使うべきです。
if (score >= 70) {
console.log("合格です");
console.log("お疲れさまでした");
} else {
console.log("不合格です");
console.log("お疲れさまでした");
}
JavaScriptここが重要です。
初心者のうちは、if でも else でも、必ず {} を付けて書くようにしてください。
「この行は if / else の中か? 外か?」が一目で分かるようにしておくと、バグの原因を大きく減らせます。
else と else if の違いを整理しておく
else と似た見た目で else if がありますが、役割が少し違います。
else は、「直前の if が false のとき」という 一通りのパターンだけ を扱います。else if は、「直前の if が false だったときに、さらに別の条件をチェックする」ためのものです。
例えば、次のようなコードを見てください。
const score = 85;
if (score >= 90) {
console.log("A");
} else {
console.log("A ではない");
}
JavaScriptこの else は、「score >= 90 ではない場合」をすべてまとめて扱います。
一方、B や C といった複数のランクを作りたいときは else if を使います。
if (score >= 90) {
console.log("A");
} else if (score >= 70) {
console.log("B");
} else {
console.log("C かそれ以下");
}
JavaScriptここが重要です。else は「一括りにした“それ以外全部”」、else if は「それ以外の中身をさらに細かく分けたいときの“次の条件”」。else を使うときは、「ここではこれ以上細かく分けなくていい」と自分で決めた合図でもあります。
初心者として else で本当に押さえてほしいこと
if と else は、必ずペアで動きます。
条件が true なら if の中だけ、false なら else の中だけが実行され、両方が実行されることはありません。
else は「直前の if が false のとき全部」を意味し、追加の条件は書きません。
「条件を書きたくなったら、それは else if の出番かもしれない」と考えてみてください。
「条件を満たさないときは何もしなくていい」なら、else はいりません。
「条件を満たしても満たさなくても、どちらかのメッセージや処理は必ずしたい」なら、else を書く価値があります。
ブロック {} は、「どこからどこまでが if / else の中なのか」をはっきりさせてくれます。
初心者のうちは、省略せず毎回 {} を付けて書くほうが、後から読んでも迷いません。
ここが重要です。else は、「プログラムに“もう一方の選択肢”を与えるスイッチ」です。
「この条件が成り立たなかったとき、プログラムにはどう振る舞ってほしいか?」
それを自分なりに言葉にしてから、else の中にコードを書いてみてください。
そうすると、単なる文法ではなく、「自分の意図を表現するための道具」として else を使いこなせるようになります。
もし手を動かして練習したくなったら、例えば次のようなコードを自分で書いてみてください。
年齢 age によって、20 歳以上なら「お酒を購入できます」、それ以外なら「未成年です」と表示する if / else。
残高 balance が 1 以上なら「引き出し可能」、それ以外なら「残高不足」と表示する if / else。
文字列 name が空文字なら「名前を入力してください」、空でなければ「こんにちは、◯◯さん」と表示する if / else。
それぞれ、「条件が true のとき」と「false のとき」に頭の中で分岐をイメージしながら書いてみてください。
それが、条件分岐を“考えられる”人へのいちばん近い道です。
