Java

【初心者向け】Javaのswitch文を解説!default文やbreak文の使い方は?

「Javaのswitch文の構造がよくわからない。どんなときに使うの? 誰か教えてほしい」

本記事ではこのような悩みを解決します。Javaのswitch文はそこまで頻繁に使うものではありませんが、場合によってはかなり便利なときがあります。
Java初心者の方でもswitch文はぜひ使いこなせるようになってほしいところ。

そこで本記事ではJavaのswitch文について初心者でもわかるように解説します。

switch文を使っているサンプルコードも掲載してありますので、実際に手を動かしながら覚えていってくださいね。

本記事を読むことでswitch文の基礎的な部分はマスターできるようになりますよ。

switch文とは

まずはJavaのswitch文とは何か、ということについて解説します。最初にもっとも基本的な部分を押さえましょう。

次のような順番で解説していきます。

  • switch文とは何か
  • switch文を使う場面
  • switch文の基本構文

switch文とは何か

switch文は分岐処理を行うときに使うものです。
たとえば金額が100円以上の場合は「お金が足りません」と表示し、100円未満の場合は「お金が足ります」と表示したい場合など。

特定の条件によって挙動を変更したい場合にはswitch文が役に立ちます。しかもswitch文は分岐を何パターンも作ることが可能です。

このように分岐処理を行いたいときにswitch文が役立ちます。

switch文を使う場面

switch文とよくにたものに「if文」というものがあります。if文もswitch文と同じく、条件によって処理を分岐させたい場合に役立ちます。

おそらくif文の方が使う機会としては多いです。if文の方がコードの行数は少なくすることができるので、基本的にはif文を使えば問題はありません。
ただし、if文は分岐が何パターンもあるとき、ソースが読みにくくなってしまうというデメリットがあります。

一方、switch文では複数の分岐パターンがあってもわかりやすく書くことができます。
そのため、分岐が少ない場合ならif文を使い、分岐が多い場合ならswitch文を使うようにした方が良いです。

ソースが読みやすくなるように使い分けていくことも、プログラマーにとって大切です。

switch文の基本構文

switch文の基本構文を紹介します。
switch文は次のような書き方をします。

switch(式){
 case 値1:
  処理1
  break;
 case 値2:
  処理2
  break;
 case 値3:
  処理3
  break;
 default:
  処理4
  break;
}

まずswitchのカッコ内に式を書きます。そして、その式を比較する値を「case ◯◯」と感じで書いていきます。
その下に、式と値が一致した場合に行う処理を記述します。そして最後に「break」を記述します。このようにして複数の「case ◯◯」を記述していきます。

これがswitch文の基本的な書き方です。見てわかる通り、if文に比べるとコードの行数が多くなってしまいます。

switch文ではcaseの終わりにすべて「break」をつけないといけないため、その分行数が増えてしまっていますね。

そのかわり、複数の条件が綺麗に並んでいるので、可読性という面では優れているのがわかります。

switch文でのdefaultの使い方

switch文の基本構文を見ると分かる通り、一番最後の部分に「default」というものが記述されています。

このdefaultとはいったいなのかを解説します。

default文の役割

defaultの役割は、どの値にも一致しなかった場合に処理を実行することです。

switch文では、どのcaseにも当てはまらなかった場合に、defaultの処理が動くようになっています。

defaultを使った具体的なサンプルコードを見ていきましょう。

public class Test {
  public static void main(String[] args) {
    int num = 5;
    String output;
    switch (num) {
      case 1:
        output = “numは3より小さいです”;
        break;
      case 2:
        output = “numは3より小さいです”;
        break;
      case 3:
        output = “numは3です”;
        break;
      case 4:
        output = “numは3より大きいです”;
        break;
      default:
        output = “numは3より大きいです”;
        break;
    }
  System.out.println(output);
  }
}

◯実行結果

Documents $ 1java test.java
numは3より大きいです
Documents $ 1

このサンプルコードでは、defaultがあることによって「numは3より大きいです」が表示されています。

変数numには5が格納されていたので、どのcaseにも当てはまることがありません。
どのcaseにも当てはまらないと、switch文はdefault内の処理を実行します。そのため、「numは3より大きいです」と表示がされているのです。

このようにdefault文があることで、どのcaseにも一致しない例外時の処理も記述することができます。

switch文でのbreak文の使い方

続いてswitch文でのbreakの使い方について解説します。
breakも使うか使わないかで挙動が大きく変わるので、breakの意味についてはきちんとおさえておきましょう。

breakとは「中断」という意味ですが、プログラミングでも文字通り「処理を中断する」という意味で使われています。

switch文では通常、1つのcaseが終わった後にbreak文を記述します。もしbreak文を記述しなかったら、そこで処理が中断しなくなってしまいます。

public class Test {
  public static void main(String[] args) {
    int num = 3;
    String output;
    switch (num) {
      case 1:
        output = “numは3より小さいです”;
      case 2:
        output = “numは3より小さいです”;
      case 3:
        output = “numは3です”;
      case 4:
        output = “numは3より大きいです”;
    }
    System.out.println(output);
  }
}

◯実行結果

Documents $ 1java test.java
numは3より大きいです
Documents $ 1

このサンプルコードでは各case内のbreak文が省かれています。break文を省略すると、一致したcase文の下のcaseの処理もすべて動いてしまいます。

今回numは「3」なので「case 3」の条件に一致しoutputに「numは3です」が代入されます。しかしbreak文を書いていなかったために、その下の「case 4」の処理も動いてしまい、outputの値が「numは3より大きいです」に上書きされてしまい、最終的には「numは3より大きいです」と出力されてしまいました。

このようにbreak文を省いてしまうと、正しくプログラムが動かないことがあります。

switch文でのString型の使い方

続いてswitch文でのStringの使い方について解説します。
String型のデータをswitch文でどのように扱っていくかチェックしましょう。

Stringとは文字列型のデータを表します。

先ほどのサンプルコードでは、int型、すなわち数値型のデータがcaseに当てはまるかどうかで条件分岐させていました。

ここでは、文字列型のデータがcaseに当てはまるかどうかで条件分岐させてみましょう。

public class Test {
  public static void main(String[] args) {
    String name = “太郎”;
    String output;
    switch (name) {
      case “太郎”:
        output = “nameは1年1組の生徒です”;
        break;
      case “健太”:
        output = “nameは1年2組の生徒です”;
        break;
      case “弘子”:
        output = “nameは1年3組の生徒です”;
        break;
      case “春木”:
        output = “nameは1年4組の生徒です”;
        break;
      default:
        output = “nameはこの学校の生徒ではありません”;
        break;
    }
    System.out.println(output);
  }
}

◯実行結果

Documents $ 1java test.java
nameは1年1組の生徒です
Documents $ 1

このサンプルコードでは、nameという変数に「太郎」という文字列型のデータを格納しています。
そしてswitch文でnameが何に当てはまるかを判定し、何組の生徒なのかを出力しています。

このようにswitch文ではString型でも問題なく条件分岐させることができます。

まとめ

本記事ではJavaのswitch文について解説しました。
switch文の意味や具体的な使い方についてご理解いただけたでしょうか?

switch文は条件分岐の数が多いときに力を発揮します。if文よりも読みやすく書くことができるのでぜひ使ってみてくださいね。

本記事がJava初心者の方にとって有意義なものとなれば幸いです。

プログラミングの家庭教師『Tech Teacher』


引用元:Tech Teacher

「スクールに通い続ける自信がない…」
「時間がなくてスクールに通えない…」

そんな方にはプログラミングの家庭教師『Tech Teacher』がおすすめです。
Tech Teacherはマンツーマン指導なので、生徒様一人ひとりに最適な指導を行うことができます。また、オンライン指導も可能なので、全国どこにいても家庭教師の授業を受けることができます。

Tech Teacherの3つの特徴


生徒様に最適化されたマンツーマン指導
完全マンツーマンの指導なので、生徒様の目的・学習状況・ご要望に合わせて、最適な指導をご提供いたします。

指導力・人柄・相性の優れた教師のご紹介
Tech Teacherには採用率20%の選考を突破した、指導力の高い教師が在籍しています。また、選考では指導力だけではなく人柄も重視しております。

1,000人の教師が在籍!幅広い指導に対応可能
業界トップレベルの1,000人の教師が在籍しています。そのため、幅広い言語・ツール・目的に対応することができます。

家庭教師ならではの5つの魅力


オーダーメイドのカリキュラム
生徒様一人ひとりに習熟度・目的・期間に応じて最適なカリキュラムを提供いたします。

きめ細やかなフォローが可能
生徒様からのご要望にきめ細やかに対応し、学習計画や勉強法などの指導もできるので、普段の勉強も捗ります。

習い事・学業・お仕事との両立が簡単
教室に通う必要がないので親御様の送迎も不要です。授業時間・頻度を生徒様のご都合に合わせて自由に調節することができます。

自分のペースで進められる
生徒様の理解度や意欲に応じて授業のスピードを調節できます。不明点や疑問点は都度立ち止まって解消できるので、着実に理解して進むことができます。

すぐ質問できるから挫折しない
先生を独り占めできるので、周りの目を気にすることなく分からないところをいつでも質問できます。

Tech Teacherへのお問い合わせ

無料体験授業・資料請求のお問い合わせはこちらから

質問のみのお問い合わせも受け付けております。