1. 作品が 0 のときは制作中
  2. 境界の 1 つ手前、作品が 2 のときは制作中
  3. 境界のちょうど 3 のときは公開レベル
  4. 作品が 5 のときも公開レベル
コース一覧
JavaScript基礎文法:処理を組み立てる
if 文の基本

JavaScript基礎文法:処理を組み立てる

if・switch による条件分岐、配列とループ、関数とコールバック、オブジェクトを順に組み立てる全 33 レッスン(525 分)の基礎文法コースです。FizzBuzz、作品リスト、関数への整理、作品データの構造化を通して、入力から結果を返す処理を自分で分解して書きます。DOM 操作は次のコースで扱います。

1
条件分岐
01. if 文の基本15分
02. if / else if / else で段階判定15分
03. switch 文で値を一覧から選ぶ15分
04. 条件を組み合わせる20分
05. FizzBuzz で複数条件を組み立てる20分
06. つくる 時間帯で挨拶を変える20分
07. 第1章まとめクイズ10分
2
配列とループ
01. 配列のきほん15分
02. 要素を足す・取り除く15分
03. for ループで合計を求める15分
04. for-of で配列を走査する15分
05. while で条件を満たす間くり返す15分
06. break と continue でループを制御する15分
07. つくる 作品リストを一覧にする20分
08. 第2章まとめクイズ10分
3
関数
01. 関数宣言15分
02. アロー関数15分
03. デフォルト引数15分
04. 早期 return でネストを浅くする15分
05. 変数のスコープ15分
06. コールバック関数15分
07. forEach で配列をまわす15分
08. つくる 処理を関数に整理する20分
09. 第3章まとめクイズ10分
4
オブジェクト
01. オブジェクトのきほん18分
02. オブジェクトで複数の値を返す16分
03. const と参照18分
04. ?. で安全に取り出す16分
05. 分割代入18分
06. スプレッド構文18分
07. find と includes で探す16分
08. つくる 作品データを構造化する25分
09. 第4章まとめクイズ10分

if 文の基本

if と else の二股
解説

このレッスンで分かること

  • if (条件) { ... } else { ... } で処理を 2 つに分けられます
  • 条件のカッコに書くのは、true か false になる式です

誰が来ても同じことしか言わない

ここまで書いてきたプログラムは、上から下へ一直線に進むだけでした。何を渡しても、返ってくる言葉はいつも同じです。ですが山田 太郎さんのプロフィールサイトを考えると、作品がまだ 1 つのときと 10 個並んだときとで、出したい言葉は違うはずです。この「もし〜なら」を書くための道具が if 文です。

JavaScript

const views = 120; if (views >= 100) { console.log("たくさん見られています"); } else { console.log("これから伸ばしましょう"); } // => たくさん見られています

丸カッコの中の条件が true のときだけ、直後の波カッコの中が動きます。false なら else の波カッコの中が動きます。else は省略できますが、書いておけば「必ずどちらか一方は動く」ことが保証されます。

このコースの課題は関数の戻り値で採点されるので、波カッコの中で return する形をよく使います。

JavaScript

function bioComment(length) { if (length >= 50) { return "十分な長さです"; } else { return "もう少し書きましょう"; } }

return が動いた時点で関数は終わります。ですから 2 つの return のうち、実際に値を返すのは必ず片方だけです。

「以上」と「より大きい」は別物

if でいちばん間違えるのは、ちょうど境目の値です。「100 以上」なら >=、「100 を超えたら」なら > を使います。日本語の 1 文字の違いが、そのまま記号の違いになります。

書き方意味views が 100 のとき
views > 100100 より大きい。100 を含まないfalse
views >= 100100 以上。100 を含むtrue
views < 100100 未満。100 を含まないfalse
views <= 100100 以下。100 を含むtrue

この境目の値を境界値と呼びます。バグの大半はここに潜んでいるので、書き終えたら境界値そのものと、その 1 つ手前を手で流して確かめてください。

解説

処理が 1 文だけなら波カッコを省略して書けます。ただし、あとから 1 行足したときに、足した行が条件と関係なく毎回動く事故が起きます。慣れるまでは常に波カッコを書いてください。

よくある間違い

  • = を 1 つしか書かない — 比較のつもりが代入になり、条件がいつも成立してしまいます

JavaScript

// NG。views に 100 を入れてしまう if (views = 100) { } // OK if (views === 100) { }
  • 片方の道で return を書き忘れる — else の側を書かずに終えると、条件を満たさなかったときに undefined が返ります。どちらの道でも値を返しているか、書き終えたら目で追ってください

要件

  1. 関数名は worksBadge、引数は作品数を表す数値 count の 1 つ
  2. count が 3 以上のとき、文字列 "ポートフォリオ公開レベル" を返す
  3. count が 3 未満のとき、文字列 "制作中" を返す
  4. if と else を使い、どちらの場合も必ず値を返す

入出力例

worksBadge(0) → "制作中" worksBadge(2) → "制作中" worksBadge(3) → "ポートフォリオ公開レベル" worksBadge(5) → "ポートフォリオ公開レベル"

ヒント

「3 つ以上」は 3 を含むので、条件式は count >= 3 になります

if (条件) { return ...; } else { return ...; } の形で 2 つの戻り値を書き分けます

count が 2 のときと 3 のときの両方を手で流して、境目で切り替わることを確かめてください

生田 陸人
監修生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
編集 ゆめさく編集部·公開 2026/05/19·更新 2026/08/26

関連レッスン

  • if / else if / else で段階判定

    経験年数を受け取って、入門から上級までのレベルを返す関数を書きます。範囲で区切る判定は else if を並べるのが定石です。

  • switch 文で値を一覧から選ぶ

    カテゴリ名を受け取って、表示用のラベルを返す関数を switch で書きます。決まった値の一覧から 1 つを選ぶ分岐に向いた構文です。

  • 条件を組み合わせる

    公開状態とカテゴリという 2 つの情報から、作品に付けるラベルを決めます。入れ子になった条件を論理演算子でフラットに書き換えます。

  • FizzBuzz で複数条件を組み立てる

    数値を 1 つ受け取り、3 の倍数なら Fizz、5 の倍数なら Buzz、15 の倍数なら FizzBuzz を返す関数を書きます。判定の順番を学ぶ定番のドリルです。

このレッスンに出てくる用語

意味があいまいなまま進んだ語は、ここから読み直せます。

  • 処理計算や代入を表す長方形
  • 関数処理に名前を付けて再利用できる単位
  • 戻り値呼び出し元への返答を表す点線矢印
  • 引数位置引数=順番で渡す。
main.js
学習モード
エディタを読み込んでいます

メモ

if 文の基本

⌘S で保存