Java はじめて 9 〜switch文〜

イントロダクション

前回やったif文と同じように条件分岐を行う構文です。
ifでやるより、switchの方が「変数の値がXXXの時」ということがわかりやすいです。

最終的には、コードを書く人の好みになってしまいますが。。。

Switch文

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

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

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("そのほかの値が入力されました。");
}

<処理内容>

  1. 標準入力クラスを生成(java.util.Scanner)
  2. 入力1行分(入力後にエンターキーを押下したときの全部)を取得(変数strにセット)
  3. strの値が「aaa」と等しいとき「aaaが入力されました。」を表示
  4. strの値が「aaa」と等しくないとき「そのほかの値が入力されました。」を表示

※「"aaa".equals(str)」はstrの値が「aaa」の時にtrueを返します。

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

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が入力されました。");
        <b>break;</b>
    default:
        System.out.println("その他の値が入力されました。");
    }
}

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

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

でわでわ。。。

<<< 前回 次回 >>>

関連ページ

Java Mid Basic

Java Basic

やったこと一覧

投稿者:

takunoji

音響、イベント会場設営業界からIT業界へ転身。現在はJava屋としてサラリーマンをやっている。自称ガテン系プログラマー(笑) Javaプログラミングを布教したい、ラスパイとJavaの相性が良いことに気が付く。 Spring framework, Struts, Seaser, Hibernate, Playframework, JavaEE6, JavaEE7などの現場経験あり。 SQL, VBA, PL/SQL, コマンドプロント, Shellなどもやります。

コメントを残す