はじめに
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 文の評価順序は次の通りです。
- case の値と一致するラベルを探す
- 一致した場所から処理を開始
- break に出会うまで下に流れる(フォールスルー)
- 一致する 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
switch 文はシンプルに見えて、 default の位置や break の有無で挙動が大きく変わります。「どこでも書けるけど、最後が読みやすい」 この感覚を持っておくと、実務でも安心して使えます。あなたの学びが、次のステップにつながりますように。

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

コメント