このページでは、JavaScriptを学ぶ上で欠かせない「if文」について、初めての方にもわかりやすく解説しています。
if文の基礎から実際に使える便利な方法まで紹介していますので、よければチェックしてみてください。
ノーノちゃん
ぶたさん
このページの目次
1. if文とは?

| 名前 | if文 |
|---|---|
| できた時期 | 1995年 |
| できること | 条件が当てはまったときに処理を行う (もし◯◯だったら△△する) |
if文とは「もし◯◯だったら△△してね!」とプログラムに指示を出すための命令文のようなものです。
たとえば、次のような年齢確認で使われています。
「はい」→サイトを表示する
「いいえ」→サイトを表示しない
これはまず「20歳以上かどうか」をチェックし、その結果によってサイトを表示するかどうかを決めています。
このように、if文を使うことで指定した条件に合わせて、プログラムの処理を変えられるようになります。
2. if文の基礎知識

ここではif文の基礎知識について解説します。
if文は次のような構成になっています。
if (条件式) {処理内容}
| if | これからif文を使いますよという合図 「もし◯◯だったら△△する」の『もし~』の部分 |
|---|---|
| (条件式) | 条件が当てはまるかどうかを調べる式 「もし◯◯だったら△△する」の『◯◯だったら』の部分 |
| {処理内容} | 条件が当てはまったときにすること 「もし◯◯だったら△△する」の『△△する』の部分 |
ぶたさん
if

ifについての解説です。if (条件式) {処理内容}
ifは「ここからif文を使うよ!」とプログラムに伝えるための合図のようなものです。
たとえば、会話中に相手が「もし〜」と話しはじめたら、「これから仮定の話が始まるんだな」と分かりますよね。
プログラムも同じで、ifを見たときに「ここからif文を書いているんだな」と理解します。
ノーノちゃん
ifのあとの()は何なの?()はif文の条件式を書く場所です。
ぶたさん
(条件式)

(条件式)についての解説です。if (条件式) {処理内容}
条件式とは()カッコ内に書く条件のことです。
正しく言うと「指定した条件に当てはまるか、当てはまらないかを調べる式」のことです。
条件式は次のように書きます。
if (age >= 20) {処理内容}
これは「もし、age(年齢)が20歳以上だったら」という意味です。
このときに20歳以上なら「当てはまる」、20歳より小さければ「当てはまらない」というふうに判断されます。
プログラムはこの結果をもとに次の処理内容へ進みます。
ノーノちゃん
ぶたさん
条件式の書き方
こちらが条件式の書き方になります。
変数 記号 値
age >= 20
| 変数 | 調べたいもの |
|---|---|
| 記号 | 比べるための記号 |
| 値 | 比べる数字や文字 |
基本的には左から「変数→記号→値」の順番で書きます。
条件式を書くときは、そのまま文章に変換しても意味がわかるように心がけることがポイントです。
条件式の例
実際に条件式を書くと、次のような感じになります。
score >= 60 // スコアは60以上?
age < 18 // 年齢は18歳以下?
isLogin === true // ログインしてますか?
name === "田中さん" // 名前は田中さん?
条件式で使う記号一覧
| 演算子 | 意味 | 例 |
|---|---|---|
> |
右より大きい | a > 10(aは10より大きい) |
< |
右より小さい | a < 5(aは5より小さい) |
> = |
右より大きいか等しい | (aは5以上) |
< = |
右より小さいか等しい | a < = 5(aは5以下) |
== |
値が同じ | a == b(aとbは値が同じ) |
=== |
値も型も同じ | a === b(aとbは値も型も同じ) |
!= |
値が同じではない | a != b(aとbは値が違う) |
!== |
値も型も同じではない | a !== b(aとbは値と型が違う) |
ぶたさん
| 演算子 | 意味 | 例 |
|---|---|---|
&& |
両方とも当てはまるとき条件達成 | A && B(AもBも両方が当てはまればOK) |
|| |
どちらか1つでもあてはまれば条件達成 | A || B(AかBどちらか当てはまればOK) |
! |
条件を逆にする | !A(Aじゃないとき~) |
ぶたさん
{処理内容}

{処理内容}についての解説です。if (条件式) {処理内容}
処理内容とは{}カッコ内に書く、条件が当てはまったときにする処理の内容のことです。
実際に処理内容を書くと次のようになります。
if (score >= 80) {
console.log("合格です");
}
console.log("合格です");の部分が処理内容にあたります。
このコードは「もしscore(点数)が80点以上だったら、コンソール画面に”合格です”とメッセージを表示する」という意味です。
条件に合っていればメッセージが表示され、条件が合っていなければ何も表示されません。
ノーノちゃん
ぶたさん
3. if文の書き方(基礎)

ここではif文の種類について解説しています。
if文は次のように3つ種類があります。
| 種類 | 意味 |
|---|---|
if |
「もし◯◯なら△△する」 |
else if |
「もし◯◯ではなく▢▢なら✕✕をする」 |
else |
「どの条件にも当てはまらない場合は☆☆する」 |
ぶたさん
if文

if (条件式) {
// ここに条件が合っていたときにする処理を書く
}
| 名前 | if |
|---|---|
| 読み方 | イフ |
| 意味 | 「もし◯◯なら△△する」 |
| できること | 条件が合ったときに指定した処理を行う |
| 条件が合わない時 | ・何もしない ・次のelse if、またはelseに進む |
if文は「もし◯◯なら△△するよ」とプログラムに指示を出すためのものです。
条件が合っていれば、その中に書いてある処理が実行されます。反対に条件が合っていなければ、その処理は行われません。
ただし、次の条件(else if、else)を書いている場合、次の条件に合うかどうか順番にチェックしていきます。
if文の例
let score = 85;
if (score >= 80) {
console.log("評価:A");
}
評価:A
let score = 85;
「score」という名前の変数を作り、85という点数を入れる。if (score >= 80){
もし「score」が80点以上なら、{}の中の処理を実行する。console.log("評価:A");
コンソール画面に「評価:A」と表示する。
let score = 85;
| コード | 種別 | 意味 |
|---|---|---|
let |
変数宣言 キーワード |
中身を変更できる変数(箱)を作る宣言 |
score |
変数名 | 変数(箱)の名前 |
= |
代入演算子 | 右のものを左に入れる |
85 |
変数値 | 変数(箱)の中身 |
【if文のコード】
if (score >= 80) {
console.log("評価:A");
}
| コード | 種別 | 意味 |
|---|---|---|
if |
制御構文 キーワード |
もし◯◯なら△△する |
() |
カッコ | if文の条件式を囲む |
score |
変数名 | 比較対象の変数 |
>= |
比較演算子 | 右より大きいか等しい |
80 |
値 | 比較対象の数値 |
console.log() |
出力命令 | ()の中身をコンソールに表示 |
else if文

if (条件1) {
// 条件1が合っていたときにする処理を書く
} else if (条件2) {
// 条件2が合っていたときにする処理を書く
}
| 名前 | else if |
|---|---|
| 読み方 | エルス・イフ |
| 意味 | 「もし◯◯ではなく▢▢なら✕✕をする」 |
| できること | ifの条件が合わなかったとき、別の条件でもう一回チェックする |
| 条件が合わない時 | 次のelse if、またはelseに進む |
else if文は「もし◯◯ではなく▢▢なら✕✕をするよ」とプログラムに指示を出すためのものです。
if文の条件が合っていないときに、新たな条件でチェックするためのもだと考えるとわかりやすいです。
もし、指定した新たな条件に合っていれば、そのときに指定していた処理が行われます。
新たな条件にも合っていない場合は、さらに下に書かれているelse if、またはelseに進んでいきます。
else if文の例
const score = 75; // 75点の評価は?
if (score >= 80) {
console.log("評価:A"); // 80点以上は「評価:A」
} else if (score >= 70) {
console.log("評価:B"); // 70点以上は「評価:B」
}
評価:B
let score = 75;
「score」という名前の変数を作り、75という点数を入れる。if (score >= 80){
もし「score」が80点以上なら、{}の中の処理を実行する。console.log("評価:A");
コンソール画面に「評価:A」と表示する。else if (score >= 70){
上の条件に一致しない場合、もし70点以上なら、{}の中の処理を実行する。console.log("評価:B");
コンソール画面に「評価:B」と表示する。
let score = 75;
| コード | 種別 | 意味 |
|---|---|---|
let |
変数宣言 キーワード |
中身を変更できる変数(箱)を作る宣言 |
score |
変数名 | 変数(箱)の名前 |
= |
代入演算子 | 右のものを左に入れる |
75 |
変数値 | 変数(箱)の中身 |
【else if文のコード】
if (score >= 80) {
console.log("評価:A");
} else if (score >= 70) {
console.log("評価:B");
}
| コード | 種別 | 意味 |
|---|---|---|
if |
制御構文 キーワード |
もし◯◯なら△△する |
() |
カッコ | if文の条件式を囲む |
score |
変数名 | 比較対象の変数 |
>= |
比較演算子 | 右より大きいか等しい |
80 |
値 | 比較対象の数値 |
console.log() |
出力命令 | ()の中身をコンソールに表示 |
else if |
制御構文 キーワード |
もし◯◯ではなく▢▢なら✕✕をする |
70 |
値 | 比較対象の数値 |
else文

if (条件1) {
// 条件1が合っていたときにする処理を書く
} else if (条件2) {
// 条件2が合っていたときにする処理を書く
} else {
// どの条件にも合っていないときにする処理を書く
}
| 名前 | else |
|---|---|
| 読み方 | エルス |
| 意味 | 「どの条件にも当てはまらないなら☆☆する」 |
| できること | これまでの条件がすべて当てはまらなかった場合に処理を行う |
else文は「もしどの条件にも当てはまらなかったら☆☆をするよ」とプログラムに指示を出すためのものです。
if、またはelse ifの条件に当てはまらなかった場合、最後に必ず処理が行われるものだと覚えておきましょう。
else文の例
const score = 60; // 60点の評価は?
if (score >= 80) {
console.log("評価:A"); // 80点以上「評価:A」
} else if (score >= 70) {
console.log("評価:B"); // 70点以上「評価:B」
} else {
console.log("評価:C"); // それ以外の点数は「評価:C」
}
評価:C
let score = 60;
「score」という名前の変数を作り、75という点数を入れる。if (score >= 80){
もし「score」が80点以上なら、{}の中の処理を実行する。console.log("評価:A");
コンソール画面に「評価:A」と表示する。else if (score >= 70){
上の条件に一致しない場合、もし70点以上なら、{}の中の処理を実行する。console.log("評価:B");
コンソール画面に「評価:B」と表示する。else {console.log("評価:C");}
どの条件にも一致しない場合、コンソール画面に「評価:C」と表示する。
let score = 60;
| コード | 種別 | 意味 |
|---|---|---|
let |
変数宣言 キーワード |
中身を変更できる変数(箱)を作る宣言 |
score |
変数名 | 変数(箱)の名前 |
= |
代入演算子 | 右のものを左に入れる |
60 |
変数値 | 変数(箱)の中身 |
【else文のコード】
if (score >= 80) {
console.log("合格です");
} else if (score >= 70) {
console.log("あと少しで合格です");
} else {
console.log("不合格です");
}
| コード | 種別 | 意味 |
|---|---|---|
if |
制御構文 キーワード |
もし◯◯なら△△する |
() |
カッコ | if文の条件式を囲む |
score |
変数名 | 比較対象の変数 |
>= |
比較演算子 | 右より大きいか等しい |
80 |
値 | 比較対象の数値 |
console.log() |
出力命令 | ()の中身をコンソールに表示 |
else if |
制御構文 キーワード |
もし◯◯ではなく▢▢なら✕✕をする |
70 |
値 | 比較対象の数値 |
else |
制御構文 キーワード |
どの条件にも当てはまらないなら☆☆する |
4. if文の書き方(応用)

ここではif文の応用的な書き方をご紹介しています。
応用方法が分かると、より複雑な条件分岐を行うことができるようになりますのでプログラミングの幅が広がります!
複数条件の組み合わせ(入れ子)

if (条件1) {
if (条件2) {
// 条件1、条件2どちらも当てはまったときにする処理
}
}
| 名前 | if |
|---|---|
| 読み方 | イフ |
| 意味 | 「もし◯◯で▢▢なら△△する」 |
| できること | 条件が合っていたとき、さらに別の条件をチェックし、合っていたとき指定した処理を行う |
if文では複数の条件を入れ子(ネスト)のように使うことできます。
具体的には「もし◯◯で、さらに▢▢…だったら△△するよ」というように、条件を順番にチェックすることが可能です。
ゲームで例えると「ボスを倒していて、さらにカギを持っていたら次のステージへ進める」という感じです。
ぶたさん
複数条件の組み合わせ(入れ子)の例
const hasKey = true;
const level = 12;
if (hasKey) {
if (level >= 10) {
console.log("宝箱が開いた!");
}
}
宝箱が開いた!
const hasKey = true;
「hasKey」という名前の変数を作り「true(カギを持っている)」という真偽値を入れる。const level = 12;
level」という名前の変数を作り「12(キャラのレベルが12)」という数値を入れる。if (hasKey) {
「もしカギを持っているなら」{}の中の処理を実行する。if (level >= 10) {console.log("宝箱が開いた!");}}
さらに「もしレベルが10以上なら」コンソール画面に「宝箱が開いた!」と表示する
const hasKey = true;
const level = 12;
| コード | 種別 | 意味 |
|---|---|---|
const |
変数宣言 キーワード |
中身を変更できる変数(箱)を作る宣言 |
hasKey |
変数名 | 変数(箱)の名前 |
= |
代入演算子 | 右のものを左に入れる |
true |
真偽値 | 「はい」という意味 |
level |
変数名 | 変数(箱)の名前 |
12 |
変数値 | 変数(箱)の中身 |
【if文のコード】
if (hasKey) {
if (level >= 10) {
console.log("宝箱が開いた!");
}
}
| コード | 種別 | 意味 |
|---|---|---|
if |
制御構文 キーワード |
もし◯◯なら△△する |
() |
カッコ | if文の条件式を囲む |
hasKey |
変数名 | カギを持っているかどうかを表す変数の名前 |
if |
制御構文 キーワード |
(入れ子のif)さらに別の条件をチェックする |
level |
変数名 | レベルが10以上かどうかを表す変数の名前 |
>= |
比較演算子 | 右より大きいか等しい |
10 |
値 | 比較対象の数値 |
console.log() |
出力命令 | ()の中身をコンソールに表示 |
複数条件の組み合わせ(AND)

&&(AND)」の解説です。if (条件A && 条件B) {
// 条件A、条件Bがどちらも当てはまったときの処理
} else {
// どちらかが当てはまらないときの処理
}
| 名前 | && |
|---|---|
| 読み方 | AND(アンド) |
| 意味 | 「◯◯と▢▢だったら✕✕をする」 |
| できること | 2つ以上の条件が すべて当てはまったときだけ処理を行う |
&&は「もし◯◯と▢▢の両方が当てはまったら✕✕をするよ」という指示を出すためのものです。
たとえば、ハムエッグを作るには「ハム」と「たまご」の両方が揃わないと作れませんよね?
このように「2つ以上の条件が揃ったとき」のみ処理を行うという特徴があります。
どちらか1つでも条件が合っていなければ、その処理は行われませんので覚えておきましょう。
複数条件の組み合わせ(AND)の例
const isMember = true;
const age = 22;
if (isMember && age >= 18) {
console.log("利用できます");
} else {
console.log("利用できません");
}
利用できます
const isMember = true;
「isMember」という名前の変数を作り「true(会員である)」と真偽値を入れる。const age = 22;
「age」という名前の変数を作り「22」という数値を入れる。if (isMember && age >= 18){}
「もし会員である」かつ「18歳以上」であれば、{}内の処理をする。{console.log("利用できます");}
コンソール画面に「利用できます」と表示する。else {console.log("利用できません");}
上の条件に一致しない場合、コンソール画面に「利用できません」と表示する。
const isMember = true;
const age = 22;
| コード | 種別 | 意味 |
|---|---|---|
const |
変数宣言 キーワード |
中身を変更できる変数(箱)を作る宣言 |
isMember |
変数名 | 変数(箱)の名前 |
= |
代入演算子 | 右のものを左に入れる |
true |
真偽値 | 「はい」という意味 |
age |
変数名 | 変数(箱)の名前 |
22 |
変数値 | 変数(箱)の中身 |
【if文のコード】
if (isMember && age >= 18) {
console.log("利用できます");
} else {
console.log("利用できません");
}
| コード | 種別 | 意味 |
|---|---|---|
if |
制御構文 キーワード |
もし◯◯なら△△する |
() |
カッコ | if文の条件式を囲む |
isMember |
変数名 | 会員かどうかを表す変数の名前 |
&& |
論理演算子 | 左がtrueなら右にそれを伝える |
age |
変数名 | 年齢を表す変数の名前 |
>= |
比較演算子 | 右より大きいか等しい |
18 |
値 | 比較対象の数値 |
console.log() |
出力命令 | ()の中身をコンソールに表示 |
else |
制御構文 キーワード |
どの条件にも当てはまらないなら☆☆する |
複数条件の組み合わせ(OR)

if (条件A || 条件B) {
// 条件Aか条件Bのどちらかが当てはまったときの処理
} else {
// どちらの条件にも当てはまらないときの処理
}
| 名前 | || |
|---|---|
| 読み方 | OR(オア) |
| 意味 | 「◯◯か▢▢のどちらかが当てはまっていれば✕✕する」 |
| できること | 2つ以上の条件の内、当てはまっているものがあれば処理を行う |
||は「もし◯◯か▢▢のどちらかに当てはまっていれば✕✕をするよ」という指示を出すためのものです。
たとえば、朝食のとき「ごはん」か「パン」のどちらかがあれば食べることができますよね。
このように、いくつかある条件の中で、どれか1つでも当てはまれば処理が行われるという点です。
逆にどの条件にも当てはまらない場合は処理が行われません。
&&と少し似ていますが、次のような違いがありますので覚えておきましょう。
| 構文 | 処理が行われる条件 |
|---|---|
&& |
両方の条件が当てはまっていた場合 |
|| |
どれか1つでも条件が当てはまっていた場合 |
複数条件の組み合わせ(OR)の例
const hasTicket = false;
const hasMemberCard = true;
if (hasTicket || hasMemberCard) {
console.log("入場できます!");
} else {
console.log("入場できません…");
}
入場できます!
const hasTicket = false;
「hasTicket」という名前の変数を作り、「false(チケットを持っていない)」という真偽値を入れる。const hasMemberCard = true;
「hasMemberCard」という名前の変数を作り、「true(会員証を持っている)」という真偽値を入れる。if (hasTicket || hasMemberCard) {console.log("入場できます!");
「もしチケットを持っている または 会員証を持っている」なら、コンソール画面に「入場できます!」と表示する。else {console.log("入場できません…");}
どの条件にも一致しない場合、コンソール画面に「入場できません…」と表示する。
const hasTicket = false;
const hasMemberCard = true;
| コード | 種別 | 意味 |
|---|---|---|
const |
変数宣言 キーワード |
中身を変更できる変数(箱)を作る宣言 |
hasTicket |
変数名 | 変数(箱)の名前 |
= |
代入演算子 | 右のものを左に入れる |
false |
真偽値 | 「いいえ」という意味 |
hasMemberCard |
変数名 | 変数(箱)の名前 |
true |
真偽値 | 「はい」という意味 |
【if文のコード】
if (hasTicket || hasMemberCard) {
console.log("入場できます!");
} else {
console.log("入場できません…");
}
| コード | 種別 | 意味 |
|---|---|---|
if |
制御構文 キーワード |
もし◯◯なら△△する |
() |
カッコ | if文の条件式を囲む |
hasTicket |
変数名 | チケットを持っているかどうかを表す変数の名前 |
|| |
論理演算子 | ◯◯か▢▢のどちらかが当てはまっていれば✕✕する |
hasMemberCard |
変数名 | 会員カードを持っているかどうかを表す変数の名前 |
console.log() |
出力命令 | ()の中身をコンソールに表示 |
else |
制御構文 キーワード |
どの条件にも当てはまらないなら☆☆する |
条件の否定(NOT)

!(NOT)」の解説です。if (!条件) {
// 条件が「当てはまらない」ときに行う処理
} else {
// 条件が「当てはまる」ときに行う処理
}
| 名前 | ! |
|---|---|
| 読み方 | NOT(ノット) |
| 意味 | 「◯◯じゃないとき✕✕する」 |
| できること | 条件を反対の意味に変えてチェックしたいときに使う |
!は「もし◯◯じゃないときは✕✕をするよ」という指示を出すためのものです。
通常のif文では「雨だったら傘を持っていく」というように、条件が当てはまったときのみ処理が行われますよね。
しかし、NOTでは考え方を反対にして「晴れじゃないときは傘を持っていく」という書き方ができます。
つまり、雨でも曇りでも雪でも、ぜんぶ「晴れ以外」なので傘を持っていくことになるという仕組みです。
!は見づらく、意味が分かりにくいというデメリットがあります。なるべく使わないようにしましょう。
ぶたさん
条件の否定(NOT)の例
const isSunny = false; // 晴れではない
if (!isSunny) {
console.log("傘を持っていくよ");
} else {
console.log("傘はいらないよ");
}
傘を持っていくよ
const isSunny = false;
「isSunny」という名前の変数を作り、「false(晴れていない)」という真偽値を入れる。if (!isSunny) {console.log("傘を持っていくよ");
「もし晴れていない」なら、コンソール画面に「傘を持っていくよ」と表示する。} else {console.log("傘はいらないよ");}
上の条件に当てはまらない場合(=晴れている場合)、コンソール画面に「傘はいらないよ」と表示する。
const isSunny = false;
| コード | 種別 | 意味 |
|---|---|---|
const |
変数宣言 キーワード |
中身を変更できる変数(箱)を作る宣言 |
isSunny |
変数名 | 変数(箱)の名前 |
= |
代入演算子 | 右のものを左に入れる |
false |
真偽値 | 「いいえ」という意味 |
【if文のコード】
if (!isSunny) {
console.log("傘を持っていくよ");
} else {
console.log("傘はいらないよ");
}
| コード | 種別 | 意味 |
|---|---|---|
if |
制御構文 キーワード |
もし◯◯なら△△する |
() |
カッコ | if文の条件式を囲む |
isSunny |
変数名 | 晴れているかどうかを表す変数の名前 |
! |
論理演算子 | ◯◯じゃないとき✕✕する |
console.log() |
出力命令 | ()の中身をコンソールに表示 |
else |
制御構文 キーワード |
どの条件にも当てはまらないなら☆☆する |
for文との組み合わせ(for)

for (初期値; 条件式; 増減) {
if (条件) {
// 条件が合っていたときにする処理を書く
}
}
| 名前 | for |
|---|---|
| 読み方 | フォー |
| 意味 | 「もし◯◯だったら△△するを繰り返し使える」 |
| できること | たくさんのデータを順番にチェックして、条件に合ったものだけ処理する |
if文とfor文を組み合わせると「同じことを何回もしながら、条件によってやることを変える」ことができるようになります。
通常では、くり返し処理の中で条件に応じた判断をするたびに同じコードを書かなければなりません。
しかし、for文の中にif文を入れておけば、くり返しごとに条件をチェックして必要な処理だけを自動で実行できます。
if文とfor文との組み合わせる例
const scores = [95, 75, 60, 85];
for (let i = 0; i < scores.length; i++) {
if (scores[i] >= 90) {
console.log("A評価");
} else if (scores[i] >= 70) {
console.log("B評価");
} else {
console.log("C評価");
}
}
A評価
B評価
C評価
B評価
const scores = [95, 75, 60, 85];
「scores」という名前の変数を作り、配列[]の中に4つの点数(95, 75, 60, 85)を入れるfor (let i = 0; i < scores.length; i++) {
「scores」の中の要素を順番に取り出す繰り返しを始める。「i」は0から始まり、配列の最後まで増えていくif (scores[i] >= 90) {console.log("A評価");}
取り出した点数が90以上なら、コンソール画面に「A評価」と表示するelse if (scores[i] >= 70) {console.log("B評価");}
取り出した点数が90未満で、70以上ならコンソール画面に「B評価」と表示するelse {console.log("C評価");}
それ以外の場合はコンソール画面に「C評価」と表示する
const scores = [95, 75, 60, 85];
| コード | 種別 | 意味 |
|---|---|---|
const |
変数宣言 キーワード |
中身を変更できる変数(箱)を作る宣言 |
scores |
変数名 | 変数(箱)の名前 |
= |
代入演算子 | 右のものを左に入れる |
[] |
配列リテラル | 配列。複数のデータを1つにまとめられる箱 |
95, 75, 60, 85 |
数値 | 配列に入っているデータ |
; |
区切り記号 | 文末につける記号 |
【for文のコード】
for (let i = 0; i < scores.length; i++)
| コード | 種別 | 意味 |
|---|---|---|
for |
制御構文 | 指定した回数だけ処理をくり返す命令 |
() |
カッコ | for文の制御部分 |
let |
変数宣言 キーワード |
中身を変更できる変数(箱)を作るという宣言 |
i |
カウンタ変数 | 何回処理をくり返したか数えるための変数 |
= |
代入演算子 | 右のものを左に入れる |
0 |
初期値 | くり返しをスタートする際の最初の値 |
; |
区切り記号 | 文末につける記号 |
< |
比較演算子 | 右より小さい |
scores |
変数 | 点数が入った配列の名前 |
.length |
プロパティ | 配列にいくつの点数が入っているか数える |
i++ |
インクリメント 演算子 |
iの値を1ずつ増やす |
【if文のコード】
if (scores[i] >= 90) {
console.log("A評価");
} else if (scores[i] >= 70) {
console.log("B評価");
} else {
console.log("C評価");
}
| コード | 種別 | 意味 |
|---|---|---|
if |
制御構文 キーワード |
もし◯◯なら△△する |
() |
カッコ | if文の条件式を囲む |
scores |
変数名 | 点数が入った配列の名前 |
[i] |
添字 | 配列の中の「i番目」の点数を取り出す |
>= |
比較演算子 | 右より大きいか等しい |
90 |
数値 | 比較対象の数値 |
console.log() |
出力命令 | ()の中身をコンソールに表示 |
else if |
制御構文 キーワード |
もし◯◯ではなく▢▢なら✕✕をする |
else |
制御構文 キーワード |
どの条件にも当てはまらないなら☆☆する |
【ES6】JavaScript:for文の書き方
関数内でif文を使う(function)

function 関数名(引数) {
if (条件1) {
// 条件1が合っていたときにする処理を書く
} else if (条件2) {
// 条件2が合っていたときにする処理を書く
} else {
// どちらの条件にも合わなかったときの処理を書く
}
}
// 関数を呼び出す例
関数名(値1); // → 条件1に合ったときの処理が実行
関数名(値2); // → 条件2に合ったときの処理が実行
関数名(値3); // → どちらにも合わなかったときの処理が実行
| 名前 | function |
|---|---|
| 読み方 | ファンクション |
| 意味 | 「関数の中で◯◯だったら△△する」 |
| できること | 一度作ったif文をあとから何回も使うことができる |
関数の中でif文を使うと、一度作った「もし◯◯だったら△△するよ」という条件をあとから何回も使えるようになります。
通常では同じ条件のif文をもう一度使いたいときは、同じ内容のコードをもう一度書かなければなりません。
これでは、あとで内容を変えたくなったときに、あちこちにあるコードを探して一つずつ直さないといけなくなります。
しかし、関数の中にif文を入れておけば、あとから関数を呼び出すだけで何度も使うことができます。
コードが1か所にまとまっているので、直したいときもそこを直すだけで済むというメリットがあります。
関数内でif文を使う例
function checkScore(score) {
if (score >= 90) {
console.log("A評価");
} else if (score >= 70) {
console.log("B評価");
} else {
console.log("C評価");
}
}
// 関数を呼び出す
checkScore(95);
checkScore(75);
checkScore(60);
A評価
B評価
C評価
function checkScore(score) {
「checkScore」という名前の関数を作り「score(点数)」という値を受け取れるようにするif (score >= 90) {console.log("A評価");}
もし「score」が90以上ならコンソールに「A評価」と表示する。if (score >= 70) {console.log("B評価");}
もし「score」が70以上(かつ90未満)ならコンソールに「B評価」と表示するelse {console.log("C評価");}
それ以外の場合(70未満)はコンソールに「C評価」と表示するcheckScore(95);
関数「checkScore」に「95」という値を渡す。「score」が90以上なのでコンソールに「A評価」と表示される。checkScore(75);
関数「checkScore」に「75」という値を渡す。「score」が70以上なのでコンソールに「B評価」と表示される。checkScore(60);
関数「checkScore」に「60」という値を渡す。「score」が70未満なのでコンソールに「C評価」と表示される。
function checkScore(score) {}
| コード | 種別 | 意味 |
|---|---|---|
function |
関数宣言 キーワード |
関数(まとまった処理)の作成を始める合図 |
checkScore |
関数名 | 関数の名前 |
(score) |
引数 | 関数に渡される値の名前 |
{} |
ブロック | 関数の中に書く処理を囲む |
【if文のコード】
if (score >= 90) {
console.log("A評価");
} else if (score >= 70) {
console.log("B評価");
} else {
console.log("C評価");
}
| コード | 種別 | 意味 |
|---|---|---|
if |
制御構文 キーワード |
もし◯◯なら△△する |
() |
カッコ | if文の条件式を囲む |
score |
変数名 | 比較対象の変数 |
>= |
比較演算子 | 右より大きいか等しい |
90 |
値 | 比較対象の数値 |
console.log() |
出力命令 | ()の中身をコンソールに表示 |
else if |
制御構文 キーワード |
もし◯◯ではなく▢▢なら✕✕をする |
70 |
値 | 比較対象の数値 |
else |
制御構文 キーワード |
どの条件にも当てはまらないなら☆☆する |
console.log() |
出力命令 | ()の中身をコンソールに表示 |
【関数を呼び出すコード】
checkScore(95);
checkScore(75);
checkScore(60);
| コード | 種別 | 意味 |
|---|---|---|
checkScore(95) |
関数呼び出し | 95点でチェックして |
checkScore(95) |
関数呼び出し | 75点でチェックして |
checkScore(95) |
関数呼び出し | 60点でチェックして |
早期リターン(return)

function sample() {
if (条件1) {
return; // 条件1に当てはまったらここで終わり
}
if (条件2) {
return; // 条件2に当てはまったらここで終わり
}
// どの条件にも当てはまらなかったときの処理
}
| 名前 | return |
|---|---|
| 読み方 | リターン |
| 意味 | 「◯◯だったら処理を止める」 |
| できること | ・入れ子を抑える ・条件が成り立たないとき処理をやめる |
早期リターンは「もし◯◯だったら、もうこれ以上続きをしなくていいよ」という指示を出すためのものです。
たとえば、先生からこんなふうなお願いされたとします。
→掃除しないで終了
(条件が当てはまったので終了=早期リターン)
②もし教室が汚れていたら?
→掃除をする
この「もし教室がキレイだったら→掃除しないで終了」というところが早期リターンと同じです。
つまり、ある条件が当てはまったら、そこですぐに終わりにして続きはやらないということです。
ノーノちゃん
ぶたさん
早期リターンの例
ここでは分かりやすいように「早期リターンなし」と「早期リターンあり」の2つのバージョンを載せています。
早期リターンなし版
function login(userId, password) {
if (userId) {
if (password) {
console.log("ログイン成功!");
} else {
console.log("パスワードを入力してください");
}
} else {
console.log("ユーザーIDを入力してください");
}
}
評価:B
function login(userId, password) {
「login」という関数を作り「userId」と「password」の2つの値を受け取れるようにするif (userId) {
もし「userId」が入力されていれば…if (password) {console.log("ログイン成功!");}
さらに「password が入力されていれば」、コンソール画面に「ログイン成功!」と表示するelse {console.log("パスワードを入力してください");}
「password」が入力されていなければ、コンソール画面に「パスワードを入力してください」と表示するelse {console.log("ユーザーIDを入力してください");}
「userId」が入力されていなければ、コンソール画面に「ユーザーIDを入力してください」と表示する
function login(userId, password) {}
| コード | 種別 | 意味 |
|---|---|---|
function |
関数宣言 キーワード |
関数(まとまった処理)の作成を始める合図 |
login |
関数名 | 関数の名前 |
(userId, password) |
引数 | 関数に渡される値の名前 |
{} |
ブロック | 関数の中に書く処理を囲む |
【if文のコード】
if (userId) {
if (password) {
console.log("ログイン成功!");
} else {
console.log("パスワードを入力してください");
}
} else {
console.log("ユーザーIDを入力してください");
}
| コード | 種別 | 意味 |
|---|---|---|
if |
制御構文 キーワード |
もし◯◯なら△△する |
() |
カッコ | if文の条件式を囲む |
userId |
変数名 | ユーザーIDを表す変数の名前 |
password |
変数名 | パスワードを表す変数の名前 |
else |
制御構文 キーワード |
どの条件にも当てはまらないなら☆☆する |
console.log() |
出力命令 | ()の中身をコンソールに表示 |
早期リターンあり
function login(userId, password) {
if (!userId) {
console.log("ユーザーIDを入力してください");
return;
}
if (!password) {
console.log("パスワードを入力してください");
return;
}
console.log("ログイン成功!");
}
function login(userId, password) {
「login」という関数を作り「userId」と「password」の2つの値を受け取れるようにするif (!userId) {
console.log("ユーザーIDを入力してください");
return;
}
もし「userId」が入っていないなら、コンソール画面に「ユーザーIDを入力してください」と表示し、処理を終了するif (!password) {
console.log("パスワードを入力してください");
return;
}
もし「password」が入っていないなら、コンソール画面に「パスワードを入力してください」と表示し、処理を終了するconsole.log("ログイン成功!");
「userId」も「password」も正しく入っていた場合、コンソール画面に「ログイン成功!」と表示する
function login(userId, password) {}
| コード | 種別 | 意味 |
|---|---|---|
function |
関数宣言 キーワード |
関数(まとまった処理)の作成を始める合図 |
login |
関数名 | 関数の名前 |
(userId, password) |
引数 | 関数に渡される値の名前 |
{} |
ブロック | 関数の中に書く処理を囲む |
【if文のコード】
if (!userId) {
console.log("ユーザーIDを入力してください");
return;
}
if (!password) {
console.log("パスワードを入力してください");
return;
}
console.log("ログイン成功!");
}
| コード | 種別 | 意味 |
|---|---|---|
if |
制御構文 キーワード |
もし◯◯なら△△する |
() |
カッコ | if文の条件式を囲む |
! |
論理演算子 | ◯◯じゃないとき✕✕する |
userId |
変数名 | ユーザーIDを表す変数の名前 |
password |
変数名 | パスワードを表す変数の名前 |
(!userId) |
条件式 | 「userId」が未入力だったらという条件 |
(!password) |
条件式 | 「password」が未入力だったらという条件 |
return |
制御構文 | 条件が当てはまったらここで処理を終了 |
console.log() |
出力命令 | ()の中身をコンソールに表示 |
5. if文の注意点

ここではif文を書くときの注意点を解説しています。
書く順番を気をつける

if文は上から順番に条件をチェックしていき、当てはまったところで処理を止める仕組みになっています。
そのため、条件の順番を間違えると、思っていたのとはまったく違う結果になることがあります。
ぶたさん
順番が正しい例
let score = 85; // scoreは85点です
if (score >= 80) { // scoreが80点以上なら…評価:A
console.log("評価:A");
} else if (score >= 70) { // scoreが70点以上なら…評価:B
console.log("評価:B");
} else {
console.log("評価:C");
}
評価:A
こちらは順番が正しい例です。
上から順番にチェックしていくと、最初の条件「scoreが80点以上なら…評価:A」に当てはまります。
scoreは85点なので「評価:A」になります。
順番をまちがえた例
let score = 85; // scoreは85点です
if (score >= 70) { // scoreが70点以上なら…評価:B
console.log("評価:B");
} else if (score >= 80) { // scoreが80点以上なら…評価:A
console.log("評価:A");
} else {
console.log("評価:C");
}
評価:B
こちらは順番をまちがえた例です。
上から順番にチェックしていくと、最初の条件「scoreが70点以上なら…評価:B」に当てはまります。
if文は最初の条件が当てはまったら処理を終えるので、scoreが85点にも関わらず「評価:B」になりました。
本来であれば85点の評価はAとなるはずですが、書く順番を間違えたことにより意図しない結果になってしまいました。
ノーノちゃん
ぶたさん
= と == を書き間違える

a = 10 // 「10」を「a」という名前の箱に入れる
a == 10 // 「a」と「10」の値が同じか調べる
| 記号 | 種類 | 意味 |
|---|---|---|
= |
代入演算子 | 右にあるものを、左の箱に入れる |
== |
比較演算子 | 左右の値が同じか調べる |
実は==を=と書き間違えるケースが意外多いです。
プログラミングで使う=は「同じ」という意味ではなく、「右のものを左の箱に入れる」という意味です。
そのため、もし間違えると「比較するつもりが、箱に入れてしまった」ということが起きてしまいますので注意しましょう。
条件式に入れるとfalseになる値

if (条件式) // 条件式に入れると「false」になるケース
| 値 | 意味 | 例 |
|---|---|---|
| false | いいえ(条件が合っていない) | if (false) |
| 0 | 数値の0 | if (0) |
| “” | 空の文字列 | if ("") |
| null | 空を表す値 | if (null) |
| undefined | 値がまだ決まっていない真っ白な状態 | if (undefined) |
| NaN | 計算ミスでできた変な値 | if (NaN) |
なぜfalse(いいえ)になる?
条件式に特定の値を入れると「false(いいえ)」になる理由は、条件が成り立たなくなるからです。
if文ではまず最初に「この条件が合ってる?それとも合ってない?」とチェックしてから処理を行っていますよね。
しかし、条件そのものが「空っぽ」や「まだ決まっていない状態」 の場合、プログラムはどう判断していいかわからなくなります。
日常会話でたとえると、こんな感じです。
Bさん「え?どういうこと?」
相手が何を言ってるのかわからない場合、返答に困りますよね。
これと同じように条件が意味不明な場合、プログラムは理解できないため、自動的にfalse(いいえ)と判断してしまいます。
ノーノちゃん
ぶたさん
6. if文に似た構文

ここではif文の代わりに使われる構文をご紹介しています。
これらをif文の代わりに使うことで、コードが読みやすくなる場合があるので知っておくと便利です。
条件演算子(三項演算子)

条件 ? 処理1 : 処理2;
// 条件が当てはまった場合 → 処理1を実行
// 条件が当てはまらない場合 → 処理2を実行
| 名前 | ? |
|---|---|
| 読み方 | 条件演算子(じょうけんえんざんし) 三項演算子(さんこうえんざんし) |
| 意味 | 「もし◯◯なら△△、そうでなければ□□をする」 |
| できること | ・if文よりも短く書ける ・条件が2択しか使えないので分かりやすい |
条件演算子(三項演算子)は「もし◯◯なら△△、そうでなければ□□をするよ」という指示を出すためのものです。
「条件が合っていたときと、合っていないときの処理を1行で決められるもの」と考えるとわかりやすいです。
条件が正しければ?のあとに書いた処理が行われ、条件が正しくなければ:のあとに書いた処理が実行されます。
条件演算子は条件が2つだけでの場合にしか使えないので、条件がたくさんあるときはif文を使いましょう。
条件演算子(三項演算子)の例
ぶたさん
const age = 20;
const message = age >= 18 ? "大人です" : "未成年です";
console.log(message);
大人です
const age = 20;
「age」という名前の変数を作り、「20」という数値(年齢)を入れる。const message = age >= 18 ? "大人です" : "未成年です";
「age」が18以上なら「大人です」、それ以外なら「未成年です」という文字列を「message」という変数に入れるconsole.log(message);
変数「message」の中身をコンソール画面に表示する。
const age = 20;
| コード | 種別 | 意味 |
|---|---|---|
const |
変数宣言 キーワード |
中身を変更できる変数(箱)を作る宣言 |
age |
変数名 | 変数(箱)の名前 |
= |
代入演算子 | 右のものを左に入れる |
20 |
変数値 | 変数(箱)の中身 |
【条件演算子(三項演算子)のコード】
const message = age >= 18 ? "大人です" : "未成年です";
console.log(message);
| コード | 種別 | 意味 |
|---|---|---|
const |
変数宣言 キーワード |
中身を変更できる変数(箱)を作る宣言 |
message |
変数 | 結果のメッセージが入る箱の名前 |
= |
代入演算子 | 右のものを左に入れる |
age |
変数名 | 比較対象の変数 |
>= |
比較演算子 | 右より大きいか等しい |
18 |
値 | 比較対象の数値 |
? |
三項演算子 | もし◯◯なら△△ |
: |
三項演算子 | そうでなければ□□する |
console.log() |
出力命令 | ()の中身をコンソールに表示 |
Switch文

switch (値) {
case 値1:
// 値が値1と一致した場合に実行する処理
break;
case 値2:
// 値が値2と一致した場合に実行する処理
break;
default:
// どの値にも当てはまらなかった場合に実行する処理
}
| 名前 | switch |
|---|---|
| 読み方 | スイッチ |
| 意味 | 「◯◯だったら△△をする」 「□□だったら☆☆をする」 「✕✕だったら……」 |
| できること | いくつもの条件をまとめて書いて、当てはまったものだけを処理する |
| 条件が合わない時 | どの条件にも当てはまらないとき、defaultに書かれた処理をする |
| ルール | ・caseの後ろに「調べたい値」を書く ・breakをつけないと次の処理も続けて実行されてしまう |
Switch文は「◯◯だったら△△をする」「□□だったら☆☆をする」というように、複数の条件をまとめて書くためのものです。
「たくさんの選択肢の中から、当てはまるものだけを実行するもの」と考えるとわかりやすいです。
複数の条件を順番にチェックしていき、当てはまったときに指定していた処理が行わます。
どれにも当てはまらなければ、最後に書いたdefaultの処理が行われるようになっています。
Switch文の例
const day = "金";
switch (day) {
case "月":
console.log("月曜日です");
break;
case "火":
console.log("火曜日です");
break;
default:
console.log("その他の日です");
}
その他の日です
const day = "金";
「day」という名前の変数を作り、「金」という文字(曜日)を入れる。switch (day) {
「day」の中に入っている曜日によって、実行する処理を分けますよ」という合図。case "月":
console.log("月曜日です");
break;
もし「day」が月だったらコンソール画面に「月曜日です」と表示し、処理を終了する。case "火":
console.log("火曜日です");
break;
もし「day」が火だったらコンソール画面に「火曜日です」と表示し、処理を終了する。default:
console.log("その他の日です");
上のどの曜日にも当てはまらなかったコンソール画面に「その他の日です」と表示する。
const day = "金";
| コード | 種別 | 意味 |
|---|---|---|
const |
変数宣言 キーワード |
中身を変更できる変数(箱)を作る宣言 |
day |
変数名 | 変数(箱)の名前 |
= |
代入演算子 | 右のものを左に入れる |
金 |
変数値 | 変数(箱)の中身 |
【switch文のコード】
switch (day) {
case "月":
console.log("月曜日です");
break;
case "火":
console.log("火曜日です");
break;
default:
console.log("その他の日です");
}
| コード | 種別 | 意味 |
|---|---|---|
switch |
制御構文 キーワード |
いくつかの中から当てはまるものを選ぶ命令 |
() |
カッコ | switch文の条件式を囲む記号 |
day |
変数名 | 比較対象の変数 |
day |
変数名 | 比較対象の変数 |
>= |
比較演算子 | 右より大きいか等しい |
80 |
値 | 比較対象の数値 |
console.log() |
出力命令 | ()の中身をコンソールに表示 |
7. よくある質問

ここでは、JavaScriptのif文に関するよくある質問と回答をまとめています。
真偽値(Boolean)ってなに?
真偽値(Boolean)とは、次のように条件の答えを表す値です。
| 真偽値 | 意味 |
|---|---|
| true | はい(条件に当てはまってるよ!) |
| false | いいえ(条件に当てはまってないよ!) |
わかりやすく言えば、◯✕クイズの回答ボタンのようなものです。
プログラムはこの真偽値によって、次にする処理を決めています。
真偽値の例
true(はい)→ 傘をさす
false(いいえ)→ 傘をささない
このように、プログラムは「true(はい)」か「false(いいえ)」を決めてから、次にすることを選んでいます。
ノーノちゃん
ぶたさん
なぜ条件式で変数を左側に書く?
結論から言うと読みやすいからです。
次のように実際にコードを比較してみると分かりやすいと思います。
if (score >= 50)
こちらは「スコアが50以上なら~」という意味です。
文章にするととても読みやすいですよね。
if (50 <= score)
こちらは「50がスコア以上なら~」という意味です。
かなり違和感がある文章ですよね。
このように実際に文章にしてみると、変数を左側に書いたほうが理解しやすいことがわかると思います。
ノーノちゃん
ぶたさん
変数を右側に書くケース
次のようなケースでは、変数を右側にも書くことがあります。
if (50 <= score && score <= 80)
こちらは「スコアが50以上、80以下なら~」という意味です。
ぶたさん
1行で書けないの?
if文を1行で書くこと可能です。
たとえば、次のようなコードの場合…
if (score >= 80) {
console.log("評価:A");
}
このように{}を省略して書くことがきます。
if (score >= 80) console.log("評価:A");
ぶたさん
- あとから処理を増やしたくなったときに書き直すのが大変
- { } がないと、どこまでがif文なのか分かりにくい
- 慣れていないとミスしやすい
OR(||)は3つ以上の条件で使える?
OR(||)は3つ以上の条件でも使えます。
たとえば、次のように書けます。
const score = 90;
if (score === 100 || score === 90 || score === 80) {
console.log("合格!");
}
合格!
この場合、scoreが「100点」「90点」「80点」のどれかに当てはまれば処理が実行されます。
OR(||)は「条件が複数あって、どれか1つでも当てはまればOK!」というときに便利です。
入れ子を何段でも増やせる?
結論から言うと、入れ子は何段でも増やすことができます。
ただし、下記のように入れ子(階層)を深くすると、コードが見づらくなるため個人的にはおすすめしません。
if (条件1) {
if (条件2) {
if (条件3) {
if (条件4) {
if (条件5) {
// 条件1〜5のすべてが当てはまったときに実行される処理
}
}
}
}
}
基本的にif文に限らずコードを書くときは、できるだけシンプルで見やすくすることが大切です。
「本当に入れ子で書く必要があるのか?」を考えてから書くようにしましょう。
8. まとめ

- if文は「もし◯◯なら△△する」のプログラム版
- if文は真偽値(
true/false)を見て次の処理を決めている - if文は「
if」「else if」「else」の3種類ある - for文や関数内でも使うことができる
- if文に似た構文「三項演算子」「Switch文」がある




