#5 Javaで学ぶ条件分岐の基本

Javaの条件分岐は、C言語系の言語に共通する標準的な書き方を採用しています。この記事では、Javaにおける条件分岐の基本と、比較的新しい書き方を解説します。

if文の基本

int age = 20;
if (age >= 18) {
    System.out.println("成人です");
} else {
    System.out.println("未成年です");
}

else ifで分岐を増やす

if (age >= 65) {
    System.out.println("高齢者です");
} else if (age >= 18) {
    System.out.println("成人です");
} else {
    System.out.println("未成年です");
}

switch文という選択肢

条件の候補が多い場合、Javaにはswitchという書き方もあります。1つの値に対して、複数の候補のどれに当てはまるかを判定したいときに便利です。

switch (day) {
    case 1:
        System.out.println("月曜日");
        break;
    default:
        System.out.println("その他");
}

各caseの最後にbreakを書き忘れると、次のcaseの処理までそのまま実行されてしまう(フォールスルーと呼ばれる)ため、注意が必要です。

switch式という新しい書き方

比較的新しいJavaには、breakが不要で値を返せる「switch式」という書き方もあります。

String result = switch (day) {
    case 1 -> "月曜日";
    case 6, 7 -> "週末";
    default -> "その他";
};

矢印(->)を使うことでフォールスルーが起きなくなり、従来のswitch文より安全に書けます。

三項演算子

簡単な条件分岐は、三項演算子を使って1行にまとめられます。

String message = age >= 18 ? "成人です" : "未成年です";

Javaならではの注意点

Javaのif文の条件は、必ず真偽値(boolean型)である必要があります。C言語の経験がある人は、数値を条件としてそのまま使う書き方に慣れているかもしれませんが、Javaではそれはできません。

パターンマッチングとの組み合わせ

switch式は、値の型に応じて分岐する「パターンマッチング」とも組み合わせられます。

String describe(Object obj) {
    return switch (obj) {
        case Integer i -> "整数です: " + i;
        case String s -> "文字列です: " + s;
        default -> "その他";
    };
}

まとめ

Javaの条件分岐はif・else if・elseに加え、候補が多い場合はswitch文やswitch式も選択肢になります。breakの書き忘れには特に注意しましょう。


本ページはプロモーションを含みます。

参考書籍(PR)

Javaをもっと学びたい方には「スッキリわかるJava入門 第4版」がおすすめです。


PR

コードを書かずに自動化したい方へ

「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本