はじめに
Java の制御構文の中でも、
if 文 は最もよく使われる構文です。
しかし、条件式の中に && や || が入ってくると、
- どっちが先に評価されるの?
- 右側は評価されないことがある?
- true / false の決まり方がわからない
といった疑問が出てきます。
この記事では、ふわっと・やさしく・実務寄りに
if 文の評価順序を整理していきます。
まずはコードを確認
Java
int x = 10;
if (x > 5 && x < 20) {
System.out.println("OK");
}
if (x < 5 || x == 10) {
System.out.println("Hit");
}
if (false && (10 / 0 == 1)) {
System.out.println("Never");
}
コードのしくみを解説
if 文は「条件式が true なら実行される」
基本はこれだけ。
Java
if (条件式) {
// 条件式が true のときだけ実行
}ただし、条件式の中に論理演算子が入ると
評価順序が重要になります。
評価順序の基本ルール
ルール①:左から右へ評価される(左結合)
Java
if (A && B)この場合、
A → B の順に評価されます。
ルール②:&& と || は「短絡評価」される
Java の論理演算子は短絡評価(ショートサーキット)を行います。
AND(&&)
- 左が false → 右は評価しない
- 左が true → 右を評価する
Java
false && (何か) → 右側は見ないOR(||)
- 左が false → 右を評価する
- 左が true → 右は評価しない
Java
true || (何か) → 右側は見ない実例で理解する
AND(&&)の評価順序
Java
int x = 10;
if (x > 5 && x < 20) {
System.out.println("OK");
}評価の流れ:
x > 5→ true- true なので次の
x < 20を評価 - 両方 true → if の中が実行される
OR(||)の評価順序
Java
if (x < 5 || x == 10) {
System.out.println("Hit");
}評価の流れ:
x < 5→ false- false なので次の
x == 10を評価 - true → if の中が実行される
短絡評価で「右側が実行されない」例
Java
if (false && (10 / 0 == 1)) {
System.out.println("Never");
}- 左が false
- AND の場合、右側は評価されない
(10 / 0)は本来例外だが、実行されないため安全
実務ではこの性質を利用して null チェック を安全に書けます。
Java
if (obj != null && obj.isValid()) {
...
}あわせて知っておきたいポイント
() を使うと評価順序を変えられる
Java
if ((a || b) && c)括弧の中が先に評価されます。
複雑な条件式は読みづらくなる
Java
if (a && b || c && !d || e == f)書けるけれど、
実務では 読みやすさのために分ける のが基本。
if の条件式は「boolean 型」だけ
Java
if (1) { } // NG(Java は数値を boolean として扱わない)C言語との大きな違いです。
使うときに気をつけたいこと
- if の条件式は左から評価される
- && と || は短絡評価される
- 右側が評価されないことがある(例外防止に使える)
- 複雑な条件式は分けると読みやすい
- boolean 型以外は条件式に使えない
実務では「短絡評価を知らずに例外が出る」 というケースが意外と多いです。
まとめ
if 文の評価順序
- 左から右へ評価される
- && と || は短絡評価される
- () で順序を変えられる
実務でのポイント
- null チェックに短絡評価を活用
- 複雑な条件式は分ける
- boolean 型だけが条件式に使える

decopon
if 文はシンプルに見えて、 評価順序と短絡評価を理解すると 一気に読みやすく、安全に書けるようになります。Java Bronze の試験でも、実務の条件分岐でも、 ここを押さえておくと安心してコードが書けます。あなたの学びが、次のステップにつながりますように。

moco
if の中は“左から順番にチェック”。
途中で決まったら、もう先は見ないんだって。
ちょっとした工夫で安全に書けるよ。

コメント