はじめに
Java の条件分岐を書くときに欠かせないのが
boolean(真偽値)。
if (true)は実行されるif (false)は実行されない
というのは直感的ですが、
実は boolean の評価にはいくつかのルールがあり、
初心者がつまずきやすいポイントでもあります。
この記事では、やさしく・実務寄りに
boolean の評価ルールを整理していきます。
まずはコードを確認
boolean a = true;
boolean b = false;
System.out.println(a && b); // false
System.out.println(a || b); // true
int x = 10;
System.out.println(x > 5); // true
System.out.println(x == 10); // true
System.out.println(true && (x / 0 == 1)); // 実行されない(短絡評価)コードのしくみを解説
boolean は true / false の2つだけ
Java の boolean はとてもシンプルで、
true か false のどちらか しかありません。
boolean flag = true;
flag = false;C言語のように
「0 が false、0 以外が true」
というルールはありません。
比較演算子は boolean を返す
int x = 10;
System.out.println(x > 5); // true
System.out.println(x == 10); // true比較演算子(>, <, ==, != など)は
必ず boolean を返します。
論理演算子(&&、||)は「短絡評価」される
Java の boolean 評価で最も重要なのがこれ。
AND(&&)
true && false → false
false && (右側は評価されない)左側が false の時点で結果は false なので、
右側は評価されません。
OR(||)
true || (右側は評価されない)
false || true → true左側が true の時点で結果は true なので、
右側は評価されません。
これを 短絡評価(ショートサーキット) と呼びます。
短絡評価は「例外を防ぐ」ためにも重要
System.out.println(true && (10 / 0 == 1)); // OK(右側は評価されない)
System.out.println(false && (10 / 0 == 1)); // OK(右側は評価されない)右側の (10 / 0) は本来例外になりますが、
短絡評価のおかげで実行されません。
実務ではこの性質を利用して
「安全に null チェックする」
という書き方がよく使われます。
あわせて知っておきたいポイント
boolean は数値と混ざらない
int x = 1;
// if (x) { } // コンパイルエラーC言語とは違い、
boolean と数値は別物 です。
== と = を間違えるとバグになる
if (flag = true) { } // 代入になってしまうJava では flag = true は代入式で、
式全体の評価結果は true になります。
実務でもよくあるバグです。
!(否定)はシンプルだけど強力
boolean isEmpty = false;
System.out.println(!isEmpty); // true条件を反転させるときに便利です。
使うときに気をつけたいこと
- boolean は true / false の2つだけ
- 比較演算子は必ず boolean を返す
- && と || は短絡評価される
- 短絡評価を利用して安全に null チェックできる
- = と == の間違いに注意
- boolean と数値は混ざらない
実務では「短絡評価を知らずに例外が出る」 というケースが意外と多いです。
まとめ
boolean の評価ルール
- true / false の2値
- 比較演算子は boolean を返す
- && と || は短絡評価される
- ! で反転できる
注意点
- = と == を間違えない
- 数値と boolean は混ざらない
- 短絡評価は安全な条件式を書くために重要

boolean の評価ルールは、 「短絡評価」を理解すると一気にスッキリします。Java Bronze の試験でも、実務の条件分岐でも、 ここを押さえておくと安心してコードが書けます。
あなたの学びが、次のステップにつながりますように。

true と false の世界にも、
“順番”と“評価しないことがある”っていうルールがあるんだね。
ちょっとした工夫で安全に書けるんだって。

コメント