【Java】switch文のdefaultはどこに書いても良い?位置と動作をやさしく解説

Java入門・実践
スポンサーリンク
スポンサーリンク

はじめに

Java の switch 文を書くときに、
初心者が必ず一度は迷うのが default の位置

  • default は最後じゃないとダメ?
  • 途中に書いたらどう動くの?
  • break がないとどうなる?

こうした疑問は、switch 文の評価順序を理解すると
一気にスッキリします。

この記事では、やさしく・実務寄りに
switch の default の位置について整理していきます。


まずはコードを確認

Java
int n = 2;

switch (n) {
    case 1:
        System.out.println("One");
        break;
    default:
        System.out.println("Other");
        break;
    case 2:
        System.out.println("Two");
        break;
}

一見「default が真ん中にあるけど大丈夫?」と思うかもしれませんが、
Java では問題ありません。


結論:default の位置は「どこでも良い」

Java の switch 文では、
default の位置はどこに書いても OK です。

  • 最後
  • 真ん中
  • 最初

どこに置いても構文的に正しく動作します。


では、どう評価されるのか?

switch 文の評価順序は次の通りです。

  1. case の値と一致するラベルを探す
  2. 一致した場所から処理を開始
  3. break に出会うまで下に流れる(フォールスルー)
  4. 一致する case がなければ default から開始

つまり default の位置は
「一致しなかったときの開始地点」
というだけで、位置は関係ありません。


default が真ん中にある例

Java
int n = 5;

switch (n) {
    case 1:
        System.out.println("One");
        break;
    default:
        System.out.println("Other");
        break;
    case 2:
        System.out.println("Two");
        break;
}

n = 5 の場合:

  • case 1 → 不一致
  • case 2 → 不一致
  • 一致なし → default から開始
  • default の位置が真ん中でも問題なし

default の位置で起きやすいミス

ミス①:break を忘れて意図しないフォールスルー

Java
switch (n) {
    default:
        System.out.println("Other");
    case 1:
        System.out.println("One");
}

n が 5 の場合:

Other
One

default の後に break がないため、
case 1 に流れてしまう

正しい書き方

Java
default:
    System.out.println("Other");
    break;

ミス②:default を最後に書かないと読みづらい

構文上は問題なくても、
実務では default は最後に書くのが慣習 です。

理由:

  • 読み手が探しやすい
  • 他言語でも「最後」が一般的
  • フォールスルーの誤解を防げる

ミス③:default を省略してしまう

default を書かないと、
「どの case にも一致しないときの処理」が抜け落ちます。

実務では default を書くのが基本 です。


default の位置まとめ

  • 位置はどこでも良い(構文上 OK)
  • ただし実務では「最後」が基本
  • break を忘れると意図しない動作になる
  • default は「一致しなかったときの開始地点」

実務での switch の書き方(おすすめ)

Java
switch (status) {
    case "OK":
        handleOk();
        break;
    case "ERROR":
        handleError();
        break;
    default:
        handleUnknown();
        break;
}
  • default は最後
  • 各 case に break
  • 読みやすく安全

まとめ

default の位置はどこでも良い(構文上 OK)

  • 最後でも
  • 真ん中でも
  • 最初でも動く

ただし実務では「最後」が読みやすい

break を忘れるとフォールスルーする

default は「一致しなかったときの開始地点」


decopon
decopon

switch 文はシンプルに見えて、 default の位置や break の有無で挙動が大きく変わります。「どこでも書けるけど、最後が読みやすい」 この感覚を持っておくと、実務でも安心して使えます。あなたの学びが、次のステップにつながりますように。

moco
moco

default は“どこでも OK”。
でも最後に置くと、読む人が迷わなくて優しいんだって。

コメント

タイトルとURLをコピーしました