if と else で判断する
if 文は、条件が true のときだけコードのブロックを実行します。else if を使うと、JavaScript は上から条件を確かめ、最初に true になったところで止まります。
ときどきだけ実行するコード
ここまでのプログラムは、どの行も毎回実行してきました。役に立つプログラムは、状況によってちがう動きをします。ゲームは得点が十分に高いときだけ "You win" と表示し、店は注文が少ないときだけ送料を加えます。JavaScript が選ぶための方法が if 文です。
const temperature = 31;
if (temperature >= 30) {
console.log("Hot day. Drink water.");
}
console.log("Done");条件は if という語のあとのかっこの中に書きます。条件は真偽値を生み出す式なら何でもよく、ふつうは前の単元で学んだ比較です。true のときに実行するコードは波かっこの中に書き、これがブロックになります。条件が false なら、JavaScript はブロック全体を飛ばして、閉じ波かっこのあとから続けます。上の例では両方の行が表示されます。temperature を 20 に変えると、"Done" だけが表示されます。ブロックの中の行は空白二つ分字下げしてあります。JavaScript に字下げは必要ありませんが、どの行が if に属しているかがひと目でわかります。経験のあるプログラマーはだれでも字下げを期待します。
else:もう一つの道
条件が true のときはあることを、false のときは別のことをしたい場面はよくあります。そのときは else ブロックを加えます。二つのブロックのうち、実行されるのはちょうど一つです。両方が実行されることも、どちらも実行されないこともありません。
const n = 7;
if (n % 2 === 0) {
console.log(n + " is even");
} else {
console.log(n + " is odd");
}
// 表示: 7 is oddelse if:三つ以上の選択肢
いくつもの可能性があるときは、else if で条件をつなげます。JavaScript は上から順に確かめます。一つが true になったとたんにそのブロックを実行し、残りはすべて飛ばします。あとの条件が true になる場合でも同じです。最後の else は、上のどれにもあてはまらなかったものをすべて受け止めます。
const score = 72;
if (score >= 90) {
console.log("A");
} else if (score >= 80) {
console.log("B");
} else if (score >= 70) {
console.log("C");
} else {
console.log("F");
}
// 表示: C条件の順番は大切です。得点が 95 なら、最初の条件ですでに true になり、A が表示されます。もし条件を逆の順番で、score >= 70 から書いていたら、95 点は最初の条件で止まり、C と表示されてしまいます。このように範囲が重なるときは、いちばんせまい条件を先に置きます。手でコードをたどるのはよい習慣です。値を一つ決め、上から読み、どの分岐に進むかを声に出して言ってみましょう。
入れ子と組み合わせ
ブロックの中に別の if 文を入れることができます。これを入れ子と呼びます。前の単元の && や || で条件を組み合わせれば、深い入れ子を避けられることがよくあります。次の二つのコードは同じ仕事をしますが、二つ目のほうが読みやすくなっています。
if (age >= 8) {
if (height >= 120) {
console.log("You can ride");
}
}
if (age >= 8 && height >= 120) {
console.log("You can ride");
}条件演算子
二つの値からどちらかを選ぶだけなら、条件(三項)演算子という短い書き方があります。condition ? valueIfTrue : valueIfFalse です。たとえば const label = n % 2 === 0 ? "even" : "odd"; のように書きます。値を選ぶ短い場面で使いましょう。いくつもの文を実行するときは、ふつうの if と else のほうがわかりやすくなります。
よくあるうっかりミスは、条件の中に等号を一つだけ書くことです。if (score = 100) と書くと、比べるのではなく score に 100 を入れてしまい、ブロックが毎回実行されます。比べるときはいつも === を使いましょう。
if (条件) { ... } else if (別の条件) { ... } else { ... }
| 条件 | if ( ) の中の真偽値の式 |
| ブロック | { } でまとめた文 |
| else | if の条件が false のときに実行される |
| else if | 上の条件がすべて false だったときだけ確かめる、別の条件 |
| 分岐 | if 文を通る道のうちの一つ |
| 入れ子 | if の中にある別の if |
| 三項演算子 | cond ? a : b で二つの値から一つを選ぶ |
| 字下げ | ブロックの中の行の先頭に置く空白 |
- 何が表示されますか?
const x = 5; if (x > 3) { console.log("big"); } else { console.log("small"); } - 何が表示されますか?
const x = 2; if (x > 3) { console.log("big"); } console.log("end");- big, then end
- Only end
- Nothing
- 何が表示されますか?
const t = 18; if (t >= 30) { console.log("hot"); } else if (t >= 15) { console.log("mild"); } else { console.log("cold"); } - 何が表示されますか?
const s = 95; if (s >= 70) { console.log("C"); } else if (s >= 90) { console.log("A"); } - if / else if / else のつながりで、実行されるブロックは最大でいくつですか?
- 何が表示されますか?
const n = 10; console.log(n > 5 ? "yes" : "no"); - 何が表示されますか?
const a = 4; const b = 9; if (a > 5 || b > 5) { console.log("one"); } else { console.log("none"); } - 何が表示されますか?
const a = 4; const b = 9; if (a > 5 && b > 5) { console.log("both"); } else { console.log("not both"); } if (score = 100)のどこがまちがっていますか?- どこもまちがっていない
- 比べるのではなく 100 を入れてしまう。=== を使う
- 中にセミコロンが必要
- 何が表示されますか?
let msg = "start"; const n = 0; if (n) { msg = "nonzero"; } console.log(msg);
- if (条件) { ... } は、条件が true のときだけブロックを実行する。
- else は false のときに実行される。二つのうち実行されるのはちょうど一つ。
- else if のつながりは上から確かめられ、最初に true になったものが勝つ。
- 範囲が重なるときは、いちばんせまい条件を先に置く。
- 比べるときは ===。一つの = は使わない。
このコースの出典 (2)
- MDN Web Docs, JavaScript Guide (developer.mozilla.org/en-US/docs/Web/JavaScript/Guide, chapters Introduction, Grammar and types, Control flow, Loops and iteration, Functions, Expressions and operators, Numbers and strings, Indexed collections, Working with objects; checked 2026-10-17)
- Ecma International, ECMA-262 ECMAScript 2026 Language Specification, 17th edition, June 2026 (tc39.es/ecma262 and ecma-international.org/publications-and-standards/standards/ecma-262, checked 2026-10-17)
確認日: 2026-10-17