Java基礎

Javaのswitch文の文法と欠点【現役エンジニアが解説】

科学水

Javaのswitch文の文法と欠点

たけ
switch文の使い方と欠点について説明を進めますね!欠点については後述していますが、特に見ておいた方が良いです。

よろしくお願いします!
Java初心者

switch文の文法

 switch文の文法例

 プログラムコード

 実行結果

上記例では「age」が「33」の為、該当のcase文の処理が実行されていますね。

defaultの使い方

先ほどの変数「age」に「10」を代入した場合、実行結果は次のとおりになります。

 実行結果

default…「case」の条件全てに一致しなかった場合に動作する処理です。

switch文の比較方法応用(Stringやenum)

switch文の応用をみていきましょう。

先ほどは数値の比較をしましたが、文字列や列挙型で比較する方法を解説します。

特に、エンジニアの現場では「enum」の値比較を利用するケースが多いので、こちらの理解が重要です。

 switch文の比較方法(文字列)

 実行結果

数値の比較と型以外変わらないですね。

 switch文の比較方法(enum)

 実行結果

Stringもやenumと比較する際も、基本的な構文は変わらず比較する際の型だけ変えればOKです。

switch文の注意点

ここからは良く間違いやすい例をあげます。ミスしない様に注意しましょう。

 間違えやすいプログラム

「break」を付け忘れてしまう。



 実行結果

「break」を付け忘れた場合、後続の「case」や「default」処理が実行されます

「break」は忘れやすいので要チェック!

Javaのswitch文とif文比較

switch文を使う必要あるかな? 間違えやすいし、if文で問題無いと思うんだけど、、
Java初心者

たけ
結論からいうと、switch文は覚えなくてOKです。if文をマスターしていれば問題ありません。条件式の内容次第では、コードを綺麗に出来るので、一応違いを説明します。

switchがifより優れている点

「OR条件」のプログラムがある場合、if文よりswitch文の方が綺麗なコードになります。

 switch文とif文でコード比較

まずは、if文で書いた場合

次にswitch文で書いた場合

若干ではありますが、switch文の方が綺麗で読みやすいコードかなと感じるかと思います。後は、内部処理が違う等、、ありますが、難しい話は覚えなくてOKです。

ただ、switch文には重大な欠点があり、使わない方が良いかなと思います。

Javaのswitch文の重大な欠点

結論からいうと「AND条件」が使えない事です。

!!!
Java初心者

エンジニアの現場で発生した悲劇ですが、最初は「OR条件」で作られていたプログラムを、途中の仕様変更で「AND条件」が追加されたんですね。
困惑しながら作りなおした経験があるので、同じ事にならない様、注意して貰えたらと思います。

今回は以上です。

たけ
Javaで挫折しそうだったり、悩んだ場合は気軽にお問い合わせから連絡下さい。良いプログラムが出来た!という報告も待ってます!


人気記事
クラウドコンピュータ
Javaでオススメの資格は「OCJ-P」です【実体験あり】

-Java基礎

Copyright© JavaSkillHacks , 2021 All Rights Reserved.