Java入門 #6 - 条件分岐(if / else if / else)

入門 | 10分 で読める | 2026.05.02

公式ドキュメント

この記事の要点

if文は条件が真(true)のときブロック内を実行
else if で複数の条件を順にチェック、else でどれにも該当しない場合を処理
• 三項演算子 条件 ? 真 : 偽 で簡潔に値を選択できる

このシリーズについて

「Java入門」は1本1テーマで進む全15回のシリーズです。本記事はその第6回として、条件分岐(if / else if / else) を解説します。

前提条件: Java入門 #1 - 開発環境構築 でJDK 21 がインストール済み。変数、データ型、演算子の基礎を理解済み。

if文の基本構文

if 文は、条件式が true のときだけブロック内のコードを実行します。

if (条件式) {
    // 条件が真のときに実行
}

実例を見ましょう。

// Java 21
public class IfBasic {
    public static void main(String[] args) {
        int age = 20;

        if (age >= 18) {
            System.out.println("成人です");
        }
    }
}

この場合、age >= 18true なので「成人です」が出力されます。

ポイント: 条件式は boolean 型(true / false)を返す必要があります。数値を直接書くとコンパイルエラーになります(C言語とは異なる点です)。

else 節

条件が false のときに実行する処理を追加するには else を使います。

if (条件式) {
    // 真のとき
} else {
    // 偽のとき
}
// Java 21
int temperature = 15;

if (temperature > 25) {
    System.out.println("暑いです");
} else {
    System.out.println("涼しいです");
}
// 出力: 涼しいです

else if で複数条件を判定

複数の条件を順にチェックするには else if を使います。

if (条件1) {
    // 条件1が真
} else if (条件2) {
    // 条件1が偽で、条件2が真
} else {
    // どちらも偽
}
// Java 21
public class GradeCheck {
    public static void main(String[] args) {
        int score = 75;

        if (score >= 90) {
            System.out.println("評価: A");
        } else if (score >= 70) {
            System.out.println("評価: B");
        } else if (score >= 50) {
            System.out.println("評価: C");
        } else {
            System.out.println("評価: D");
        }
    }
}
// 出力: 評価: B

補足: else if は上から順にチェックされ、最初に true になった分岐のブロックだけが実行されます。その後の条件は評価されません。

比較演算子と論理演算子

条件式でよく使う演算子をまとめます。

比較演算子

演算子意味結果
==等しい5 == 5true
!=等しくない5 != 3true
>より大きい5 > 3true
<より小さい5 < 3false
>=以上5 >= 5true
<=以下5 <= 3false

注意: 文字列の比較には == ではなく .equals() を使ってください(詳細は Java入門 #5 を参照)。

論理演算子

演算子意味結果
&&AND(かつ)true && falsefalse
||OR(または)true || falsetrue
!NOT(否定)!truefalse
// Java 21
int age = 25;
boolean hasLicense = true;

if (age >= 18 && hasLicense) {
    System.out.println("運転できます");
} else {
    System.out.println("運転できません");
}
// 出力: 運転できます

ネストしたif文

if 文の中に別の if 文を入れることができます(ネスト)。

// Java 21
int age = 20;
boolean isStudent = true;

if (age >= 18) {
    if (isStudent) {
        System.out.println("学生割引が適用されます");
    } else {
        System.out.println("通常料金です");
    }
} else {
    System.out.println("子供料金です");
}
// 出力: 学生割引が適用されます

ポイント: ネストが深くなりすぎるとコードが読みにくくなります。可能なら論理演算子(&&||)を使って1つの条件にまとめましょう。

三項演算子(条件演算子)

簡単な条件分岐なら、三項演算子を使って1行で書けます。

変数 = 条件式 ? 真のときの値 : 偽のときの値;
// Java 21
int age = 16;
String status = (age >= 18) ? "成人" : "未成年";
System.out.println(status); // "未成年"

これは以下と同じ意味です。

String status;
if (age >= 18) {
    status = "成人";
} else {
    status = "未成年";
}

補足: 三項演算子は短く書けますが、複雑な条件には向きません。可読性を優先して if-else を使うべき場合も多いです。

実例:ログイン判定

実際のプログラムでは、複数の条件を組み合わせてユーザーの状態を判定することがよくあります。

// Java 21
import java.util.Scanner;

public class LoginCheck {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("ユーザー名: ");
        String username = scanner.nextLine().trim();

        System.out.print("パスワード: ");
        String password = scanner.nextLine().trim();

        // 簡易的な認証ロジック(実際にはDBなどで検証)
        if (username.isEmpty() || password.isEmpty()) {
            System.out.println("エラー: ユーザー名とパスワードを入力してください");
        } else if (username.equals("admin") && password.equals("pass123")) {
            System.out.println("ログイン成功");
        } else {
            System.out.println("ユーザー名またはパスワードが間違っています");
        }

        scanner.close();
    }
}

このコードは以下を実現しています。

  • 空白入力のチェック(isEmpty()
  • 複数条件の組み合わせ(||&&
  • 順序だった条件分岐(最初にエラー、次に正常ケース、最後にデフォルト)

よくあるミス

ミス説明正しい書き方
if (x = 5)代入演算子 = を使っているif (x == 5)
if (isValid)if (isValid == true) と書く冗長if (isValid) で十分
波括弧 {} を省略して複数行書く2行目以降は常に実行される複数行なら必ず {} を付ける
else if の最後に else がない想定外の値で何も起きない必要に応じて else で例外ケースを処理

ブロックの省略について

条件分岐の中身が1文だけなら波括弧 {} を省略できますが、推奨しません

// 省略形(非推奨)
if (x > 0)
    System.out.println("正の数");

// 推奨
if (x > 0) {
    System.out.println("正の数");
}

注意: 波括弧を省略すると、後から行を追加したときにバグの原因になります。常に波括弧を書く習慣を付けましょう。

次のステップ

Java入門 #7 - switch文とswitch式(Java 14+) で、値による多分岐を簡潔に書く方法を学びます。

参考リソース

この技術を体系的に学びたいですか?

未来学では東証プライム上場企業のITエンジニアが24時間サポート。月額24,800円から、退会金0円のオンラインIT塾です。

メールで無料相談する
← 一覧に戻る