【Java入門】switch文の書き方、if文との違いについて

投稿日: 作成:   更新:

Javaのswitch文について解説します。

  • Javaのswitch文の書き方が知りたい
  • if文との違いは何だろう?
  • switch文を使うのに、注意点とかあるのだろうか?
  • switch文で複数条件のやり方

このような内容について解説します。

私はWEB開発中心に、フロントエンド、サーバーサイド、サーバー構築など経験豊富なエンジニアです。
これからプログラミングを始める方に向けて、少しでも分かりやすく解説していきたいと思います。

それでは行きましょう!

switch文の書き方

Javaのswitch文はどんな時に使うのかと言いますと、「1つの値に対して条件分岐する」ときに使用します。

switch文の書き方のポイントは次のようになります。

Point

  • switchの()の中には1つの値をセット
  • 条件は「case文」で分岐する
  • どれも一致しない条件は「default文」を使用する(if文のelseと同じ効果)

上記のポイントを踏まえてソースコードを書いてみます。
1つの値「value」に対して、caseで「バナナ」かどうかを判定しています。

String value = "バナナ";

// switchの()の中には1つの値をセット
switch (value) {

    // 条件は「case文」で分岐する
    case "バナナ":
        System.out.println("バナナを発見!");
        break;

    // どれも一致しない条件は「default文」を使用する(if文のelseと同じ効果)
    default:
        System.out.println("バナナはなかった・・・");
        break;
}

実行結果:

「case “バナナ”」に一致しましたので、「バナナを発見!」が表示されました。

一致しなかったときは、defaultの「バナナはなかった・・・」が表示されます。
if文でいうと「else」と同じような役割ですね。

では、switch文とif文の違いはあるのでしょうか?

switch文とif文の違い

switch文とif文の違いですが正直に言って、
特に違いはない
です。

2つの違いは、ソースコードの書き方くらいでしょうか。
なので、switch文で書くか、if文で書くか人によって好みが分かれます

switch文とif文で、同じ条件のソースコードを書いてみましたので、比べてみてください。

switch文の場合

String value = "バナナ";

switch (value) {

    case "バナナ":
        System.out.println("バナナを発見!");
        break;

    default:
        System.out.println("バナナはなかった・・・");
        break;
}

if文の場合

String value = "バナナ";

if (value.equals("バナナ")) {
    System.out.println("バナナを発見!");

} else {
    System.out.println("バナナはなかった・・・");
}

どうですか?
switch文とif文に大差ないと思いませんか?

このように、ソースコードの書き方が違うくらいでしかないです。

また、switch文でできることは、if文でできます
その反対に、if文でできて、switch文でできないことは多々あります。

ちなみに私はif文で書くことの方が多いです。

switch文の注意点

switch文の注意点としては、case文に「break;」を入れる必要があります。

if文では{}で囲んだ中だけが実行されますが、switch文の場合はbreak;を入れないと次のcase, defaultが実行されてしまいますので注意ください。

試しに、わざと「break;」を抜いたソースコードを書いてみました。

String value = "バナナ";

switch (value) {
    case "バナナ":
        System.out.println("バナナを発見!");

    case "イチゴ":
        System.out.println("イチゴを発見!");

    default:
        System.out.println("バナナ、イチゴはなかった・・・");
}

実行結果:

「break;」が入っていないので、すべてのSystem.out.printlnが実行されてしまいました。

ですので「break;」を入れるようにしましょう。

switch文で複数条件のやり方

最後に、switch文で複数条件のやり方について紹介します。

まずは、if文で複数条件のソースコードを見てみてください。

if文の場合

String value = "バナナ";

if (value.equals("バナナ") || value.equals("マンゴー")) {
    System.out.println("果物を発見!");

} else if (value.equals("トマト") || value.equals("キャベツ")) {
    System.out.println("野菜を発見!");

} else {
    System.out.println("果物、野菜はなかった・・・");
}

上記では、果物か野菜か、それ以外かを判定するプログラムです。

valueに入っているのは「バナナ」で「バナナ or マンゴー」の条件に一致するので、「果物を発見!」が出力されます。

実行結果:

このif文の複数条件と同じ内容をswitch文で書いてみます。

case文をならべることで「バナナ or マンゴー」の判定をするようにしています。

switch文の場合

String value = "バナナ";

switch (value) {

    // case文をならべることで「バナナ or マンゴー」の判定をしている
    case "バナナ":
    case "マンゴー":
        System.out.println("果物を発見!");
        break;

    case "トマト":
    case "キャベツ":
        System.out.println("野菜を発見!");
        break;

    default:
        System.out.println("果物、野菜はなかった・・・");
        break;
}

このようにswitch文の複数条件はcase文をならべて判定をできます。

switch文の複数条件は可読性が良くてスッキリ書けるので使っている人は多いです。

if文でOR条件をたくさん使うときは、switch文で書いてみると良いと思います。

まとめ

Javaのswitch文について次の内容で解説しました。

  • switch文の書き方(1つの値、case文で分岐)
  • switch文とif文の違い(特に違いはない)
  • switch文の注意点(breakを入れる)
  • switch文で複数条件のやり方(case文をならべる、可読性が良い)

if文で書くよりも、switch文の方がスッキリと書けることも多々あります。

ですので、自分に合っている書き方を進みながら模索していきましょう!