Java はじめて 9 〜switch文〜

今回は、switch文の書き方、使い方(サンプルコード)をやります。switch文はif文と同様に、文字列と数値で判定できます。
※JDK1.8では文字列が使用可能、しかし古いJDKでは使えないかも?

ちなみに前回の記事はこちらです。前回の内容を踏まえて記載しています。

Java はじめて8 〜booleanとif~

switch文の書き方

switch(判定する値) {
   case 値がXXXの時のケース :
           // 処理1
    case 同上:
          // 処理2
    default:
           // 上記以外のケース
}

こんな感じです。if文と何が違うのか?見た目が違いますね。。。なので、前回作成したプログラムはif文で作成しましたが、switch文で書き直すことができます。
<前回のコード>

Scanner scan = new Scanner(System.in);
String str = scan.nextLine();
if ("aaa".equals(str)) {
   System.out.println("aaaが入力されました。");
} else {
   System.out.println("そのほかの値が入力されました。");
}

コードを書き直す前に、一回動かしてみましょう。
全体のコードは下のようになります。

import java.util.Scanner;

public class MainMethodTest {
   public static void main(String[] args) {
      System.out.println("Hello World");
      MainMethodTest main = new MainMethodTest();
      // 標準入力を受ける
      Scanner scan = new Scanner(System.in);
      String str = scan.nextLine();

      if ("aaa".equals(str)) {
         Systme.out.println("aaaが入力されました。");
      } else {
         System.out.println("その他の値が入力されました。");
      }
   }
}


これは、単純にif文で書いた時のもの。。。これを書き換えてswitch文に変更します。

   public static void main(String[] args) {
      System.out.println("Hello World");
      MainMethodTest main = new MainMethodTest();
      // 標準入力を受ける
      Scanner scan = new Scanner(System.in);
      String str = scan.nextLine();

      switch (str) {

      case "aaa":
         System.out.println("aaaが入力されました。");

      default:
         System.out.println("その他の値が入力されました。");
      }
   }


これで動かしてみます。

ん?何か余計なものが出力されています。「その他の〜」
は表示されちゃいけないはず。。。

そうなんです。「break」がないので処理がdefaultの部分も通ってしまうのです。
この「break」はループしている時にも使えるコードで、「処理を抜ける」という意味があります。ちょっと上のコードに「break」を加えて実行してみます。

   public static void main(String[] args) {
      System.out.println("Hello World");
      MainMethodTest main = new MainMethodTest();
      // 標準入力を受ける
      Scanner scan = new Scanner(System.in);
      String str = scan.nextLine();

      switch (str) {

      case "aaa":
         System.out.println("aaaが入力されました。");
         break;
      default:
         System.out.println("その他の値が入力されました。");
      }
   }


こんな感じで実装します。〜文は基本ですが、実際にアプリケーション(ゲームも含む)を作成しようとした時の土台になります。ここら辺を理解して、オブジェクトの組み合わせ方を理解してやれば、想い通りのアプリケーションができるかも?
※何かをやろうとした時に「イレギュラー」はつきものです。やはり「根性」で突破するしかないような気がします(笑)

そんなわけで、今回のswitch文はここまでにしようと思います。

関連ページ

Java Mid Basic

Java Basic

やったこと一覧