1. web は Web 制作
  2. frontend もまとめて Web 制作
  3. design はデザイン
  4. study は学習メモ
  5. 空文字は default に落ちてその他
コース一覧
JavaScript基礎文法:処理を組み立てる
switch 文で値を一覧から選ぶ

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分

switch 文で値を一覧から選ぶ

break を外すと落ちる
解説

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

  • switch (式) { case 値: ... } で、1 つの値を候補と突き合わせられます
  • switch の比較は === です。1 と "1" は一致しません
  • break も return も書かないと、下の case へ流れ落ちます

同じ変数名を何度も書いている

作品に付けた種別から、画面に出す日本語のラベルを決めたいとします。else if で書くと、こうなります。

JavaScript

if (ext === "jpg") { return "画像"; } else if (ext === "png") { return "画像"; } else if (ext === "html") { return "ページ"; } else { return "不明なファイル"; }

見比べている左側は毎回同じ ext で、違うのは右側の値だけです。この「1 つの式を、決まった候補のどれかと突き合わせる」形に特化した構文が switch 文です。

JavaScript

function fileKind(ext) { switch (ext) { case "jpg": case "png": return "画像"; case "html": return "ページ"; default: return "不明なファイル"; } }

ext が 1 回しか出てこなくなり、候補が縦に並んで対応表のように読めるようになりました。case "jpg": の直後には何も書いていません。一致した case から実行が始まり、下へ流れて return "画像"; に届きます。この流れ落ちる動きをフォールスルーと呼び、複数の値を同じ扱いにまとめたいときに役立ちます。

部品役割
switch (式)突き合わせのもとになる値。1 回だけ評価される
case 値比較する候補。一致するとここから実行が始まる
breakswitch を抜ける。書かないと下へ流れる
defaultどの case にも一致しなかったときの受け皿
return関数ごと抜けるので break の代わりになる

break を忘れると、下まで流れ落ちる

便利なフォールスルーは、そのまま最大の落とし穴でもあります。値を代入して組み立てる書き方だと、break が無い枝は下の代入で上書きされます。

JavaScript

// NG。"jpg" を渡しても "不明なファイル" が返る let kind = ""; switch (ext) { case "jpg": kind = "画像"; case "html": kind = "ページ"; default: kind = "不明なファイル"; }

case "jpg" から始まった実行が、止まらずに最後まで落ちてしまいました。各枝の末尾に break; を足せば直ります。

なお、枝の中で return を書いていれば、その場で関数ごと抜けるので break は要りません。関数の中で値を返すだけの分岐なら、return で書くほうが書き忘れの事故を防げます。

よくある間違い

  • 型の違いに気付かない — switch の比較は常に === で、ゆるい比較モードはありません。フォームから来た値は文字列になりがちなので、候補の書き方をそろえてください

JavaScript

switch (n) { case 1: return "一番目"; } // n が "1" のときは一致しない
  • case に範囲を書こうとする — case n >= 5: は true か false と n を比較してしまい、期待どおりに動きません。範囲の判定は if と else if の出番です
  • default を書かない — どの候補にも当てはまらない値が来たときに、何も返らず undefined になります。読み手が迷わないよう、素直に最後へ置いてください

要件

  1. 関数名は categoryLabel、引数はカテゴリ名を表す文字列 category の 1 つ
  2. "web" と "frontend" は "Web 制作"、"design" は "デザイン"、"study" は "学習メモ" を返す
  3. どれにも当てはまらない値と空文字は default で受け止め、"その他" を返す
  4. if ではなく switch を使い、戻り値はすべて文字列にする

入出力例

categoryLabel("web") → "Web 制作" categoryLabel("frontend") → "Web 制作" categoryLabel("design") → "デザイン" categoryLabel("study") → "学習メモ" categoryLabel("") → "その他"

ヒント

switch (category) の中に case "web" のように候補を並べます

`case "web":` の直後に何も書かず `case "frontend":` を続けると、2 つを同じ処理にまとめられます

case のどれにも一致しない値は default が受け止めます。default を書き忘れると undefined が返ります

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

関連レッスン

  • 条件を組み合わせる

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

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

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

  • つくる 時間帯で挨拶を変える

    0 から 23 の時刻を受け取り、時間帯に合った挨拶を返す関数を作ります。第 4 章の総まとめとして、プロフィールサイトの表示を時間で変えます。

  • 第1章まとめクイズ

    第4章で学んだ if / else if / else、switch、論理演算子による条件の組み立てを 5 問で確認します。判定の順番と境界値の扱いが中心です。

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

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

  • 変数データに名前をつけて参照する仕組み
  • 評価出力品質を数値化して継続改善する活動
  • 関数処理に名前を付けて再利用できる単位
  • フォームinput(text, email, password, checkbox, radio)、select、textarea、button。
  • 引数位置引数=順番で渡す。
  • 戻り値呼び出し元への返答を表す点線矢印
main.js
学習モード
エディタを読み込んでいます

メモ

switch 文で値を一覧から選ぶ

⌘S で保存