Javaプログラミング入門 – switch文

注意: この記事は1年以上前に掲載されたものです。情報が古い場合がありますのでお気を付け下さい。

前回ではループ処理について説明を行った。今回で条件分岐についての基本的な説明については最後となる。ここでは多数の条件がある場合に使われるswitch文について説明を行いたい。

switch文とは、多くの選択肢から一つの条件を選んで実行するための構文である。たとえば四択問題において、一つを選ぶと行った感じである。

例えば、以下のコードがある。

import java.io.*

public class SwitchTest {
    public static void main(String[] args) {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("どの動物が好きですか?数字を選んでください。");
        System.out.println("1 イヌ");
        System.out.println("2 ネコ");
        System.out.println("3 その他");
        try {
            String line = reader.readLine();
            int answer = Integer.parseInt(line);
            switch(answer) {
            case 1:
                System.out.println("イヌですね");
                break;
            case 2:
                System.out.println("ネコですね");
                break;
            case 3:
                System.out.println("その他ですね");
                break;
            default:
                System.out.println("数字が正しくありません");
                break;
            }
        }catch(IOException exception){
            System.out.println(exception);
        }catch(NumberFormatException exception){
            System.out.println("数字ではない何かが入力されました");
        }
    }
}

これは、イヌかネコ、あるいはそれ以外のどれが好きか数字で答えてくださいという内容で、キーボードから入力した内容を数値にした後、その数字が何なのかを判定して、イヌなのかネコなのかその他なのかをswitch(i)の部分で判定している。そしてて、case以降で1だったらイヌ、2だったらネコ、3だったらその他と表示するいった具合である。なお、defaultの部分においてそれ以外の数値が指定されたら数字が正しくないという表示をしている。

なお、switch〜case文ではそれぞれの部分の最後には必ずbreak文を挿入する。これはswitchの内容を抜けるものである。break文がないと、次のcaseまで処理が行われてしまいバグの原因となってしまう。

また、catchの部分で数値に変換できなかった場合や、そもそも入力部分で問題が発生したときにどのように処理するかが書かれている。この部分については後ほど説明を行いたい。

以上で簡単な条件分岐およびループを説明した。プログラムは主に分岐やループの組み合わせで成り立っているので、それらを駆使して作り上げていけるのである。

次はプログラムでもよく使われるものの一つについて説明を行いたい。

タイトルとURLをコピーしました