【Java】if文の評価順序をやさしく解説|条件式の読み方と落とし穴を実務目線で整理

Java入門・実践
スポンサーリンク
スポンサーリンク

はじめに

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");
}

評価の流れ:

  1. x > 5 → true
  2. true なので次の x < 20 を評価
  3. 両方 true → if の中が実行される

OR(||)の評価順序

Java
if (x < 5 || x == 10) {
    System.out.println("Hit");
}

評価の流れ:

  1. x < 5 → false
  2. false なので次の x == 10 を評価
  3. 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
decopon

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

moco
moco

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

コメント

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