Javaの分岐(if文)

java

Javaの分岐(if文)について紹介します。

[スポンサーリンク]

目次

  1. if文で数値(int)を扱う
  2. if文で文字列(String)を扱う
  3. if文でNull値を参照する(例外が発生するケース)
  4. switch文で数値を扱う
  5. switch文でcharを扱う
  6. if文を1行で書く

if文で数値(int)を扱う

    public static void main(String arg[]) {

        int i = 0;

        if (i == 0) {
            System.out.println("iは 0です。");
        } else if (i == 1) {
            System.out.println("iは 1です。");
        } else {
            System.out.println("iは 0と1以外です。");
        }
    }

実行結果

>実行結果
iは 0です。

if文で文字列(String)を扱う

文字列(String)を扱うときは、==ではなくStringのequalsメソッドで比較を行います。サンプルの例だと、"目玉焼き".equals の"目玉焼き"をjavaが暗黙的にStringとして扱っています。

    public static void main(String arg[]) {

        String str = "目玉焼き";

        if ("目玉焼き".equals(str)) {
            System.out.println("str は 目玉焼き です。");
        } else if ("ハンバーグ".equals(str)) {
            System.out.println("str は ハンバーグ です。");
        } else {
            System.out.println("str は 目玉焼きとハンバーグ 以外です。");
        }
    }

実行結果

>実行結果
str は 目玉焼き です。

if文でNull値を参照する(例外が発生するケース)

5行目でNullオブジェクトのequalsメソッドを参照しているため、NullPointerExceptionが発生します。

    public static void main(String arg[]) {

        String str = null;

        if (str.equals("目玉焼き")) {
            System.out.println("str は 目玉焼き です。");
        } else if ("ハンバーグ".equals(str)) {
            System.out.println("str は ハンバーグ です。");
        } else {
            System.out.println("str は 目玉焼きとハンバーグ 以外です。");
        }
    }

実行結果

>実行結果
Exception in thread "main" java.lang.NullPointerException

switch文で数値を扱う

    public static void main(String arg[]) {

        int i = 0;

        switch (i) {
        case 0:
            System.out.println("i は 0です。");
            break;

        case 1:
            System.out.println("i は 1 です。");
            break;

        default:
            System.out.println("iは 0と1以外です。");
            break;
        }

        System.out.println("switchを抜けました。");

    }

実行結果

>実行結果
iは 0です。

switch文でcharを扱う

残念ながら、java6までではswitchは文字列(String)を扱うことは出来ません。java7であれば文字列(String)を扱うことが出来ます。
java6ではchar型かenumであれば、文字も扱うことが出来ます。(enumは文字ではないような・・・)

    public static void main(String arg[]) {

        char c = 'a';

        switch (c) {
        case 'a':
            System.out.println("c は aです。");
            break;

        case 'b':
            System.out.println("c は b です。");
            break;

        default:
            System.out.println("cは aとb以外です。");
            break;
        }

        System.out.println("switchを抜けました。");

    }

実行結果

>実行結果
c は aです。
switchを抜けました。

if文を1行で書く

真(true)の場合、?の左辺が返却され、偽(false)の場合は右辺が返却されます。

    public static void main(String arg[]) {

        int i = 1;
        System.out.println((i > 0) ? "0より大きい数字です" : "0より小さい数字です");

    }

実行結果

>実行結果
0より大きい数字です

続きは

続いての章では、
if文に続く基本的な構文、for文について解説していきます。
「Javaの繰り返し」(for、while)