【Java】真偽値(boolean)とは?プログラミングの「分かれ道」をいっぽずつ理解しよう
はじめに
みなさんどうも、おげんです。
これまで「整数」「小数」「文字」と、Javaで扱うさまざまな「型」についてお話ししてきました。
これらをマスターした皆さんは、もうJavaで色々なデータを扱えるようになっています。
でも、プログラムを書いていると、どうしてもやりたくなることがあります。
「もし〜だったら、この処理をする。そうでなければ、こっちをする」という「判断」です。
例えば、「もしテストが80点以上なら『合格』と表示する」「もしパスワードが合っていたら『ログイン』させる」といったことですね。
この「判断」の主役になるのが、今回紹介する boolean(真偽値:しんぎち) です。
カタカナや漢字で見ると難しそうですが、中身はとってもシンプル。
「イエスか、ノーか」の2種類しかありません。
独学時代の私は、「型が多すぎてこれ以上覚えられない!」と半べそをかいていましたが(笑)、このbooleanを理解したことで、プログラムが自分の意思で動いているような「分かれ道」の面白さを知ることができました。
今回は、このプログラミングの「思考の根っこ」になるbooleanについて、実体験を交えながら丁寧に紐解いていこうと思います。
- boolean(真偽値)という言葉を初めて聞いて、難しそうと感じている人
- trueとfalse、結局どういう場面で使うのかピンときていない人
- 「もし〜なら」という条件分岐の学習をこれから始める人
- Javaの基本データ型をコンプリートして、基礎を完璧にしたい人
boolean(ブーリアン)ってなに?
「boolean(ブーリアン)」という名前、なんだか魔法の呪文みたいですよね(笑)。
プログラミングの世界では、これを「真偽値(しんぎち)」と呼びます。
今までの型との決定的な違いは、「値が2つしか存在しない」という点です。
- true(真): 「その通り!」「YES」「正しい」
- false(偽): 「違うよ!」「NO」「正しくない」
これだけです。123とか"おげん"といった自由な値は一切入りません。
日常生活にある boolean
実は、私たちの身の回りも boolean 的な考え方であふれています。
- 電気のスイッチ: ついている(true)か、消えている(false)か。
- お風呂の栓: 閉まっている(true)か、開いている(false)か。
- 信号: 青(true:進める)か、赤(false:進めない)か。
このように、「AかBか、どっちの状態?」ということをコンピュータに伝えるための専用の型が boolean なんです。
独学時代の私の勘違い
当時の私は、「YES/NOだけで何ができるの?」と思っていました。
でも、実はプログラムのすごいところは、この「YESかNOか」を自分で判断して、動きを変えられるところにあります。
例えば、「年齢が20歳以上なら、お酒の販売ボタンを有効にする(true)」といった処理。
これはまさに、この boolean という型があるからこそ実現できることなんです。
どういう時に使うの?(比較演算子)
「値が true と false しかないのはわかった。でも、自分で boolean b = true; なんて手入力すること、あんまりなくない?」
独学時代の私はそう思っていました。
実は、boolean が本領を発揮するのは、何かを「比べた時」なんです。
int age = 25;
boolean isAdult = (age >= 20); // 「20以上かな?」と比べている
System.out.println(isAdult);この時、(age >= 20) という部分で比較が行われ、結果として true が生まれます。
そして、その true が isAdult という変数に格納されるという仕組みです。
よく使う比較のルール(比較演算子)
Java君に「比べて!」とお願いする記号をいくつか紹介します。
| 記号 | 読み方 | 意味 | 例文(結果が true になるもの) |
== | イコール | 左と右が同じ | 10 == 10 |
!= | ノットイコール | 左と右が違う | 10 != 5 |
> | 大なり | 左が右より大きい | 10 > 5 |
< | 小なり | 左が右より小さい | 5 < 10 |
>= | 大なりイコール | 左が右以上(同じか大きい) | 10 >= 10 |
<= | 小なりイコール | 左が右以下(同じか小さい) | 5 <= 5 |
比較した瞬間に「答え」が生まれている
比較といえば「if文(条件分岐)の中でしか使わないもの」と思われがちです。
しかし、実は比較をしたその瞬間に、Java君の頭の中では true や false という「答え(データ)」が発生しています。
この感覚が掴めると、プログラムがただの文字の羅列ではなく、「一つひとつの判断の結果が積み重なって動いている」ということが見えてきます。
ただ、この「判断」をJava君にお願いする時には、絶対に間違えてはいけない「注意点」があるんです!
独学時代の私が混乱したポイント
booleanを扱っていると、どうしても避けて通れない「落とし穴」があります。
私も何度もこの穴に落ちて、コンパイルエラーという名の絶望を味わいました(笑)。
「=」が1つか、2つか
これ、プログラミング初心者あるあるの第1位ではないでしょうか。
age = 20;(右の値を左に入れる:代入)age == 20;(左と右が同じか比べる:比較)
「同じ!」と言いたいときは、必ず = を2つ書く必要があります。 独学時代の私は、無意識に = を1つしか書かずに、「中身を書き換えてしまう」というミスを連発していました。
Java君からすれば「比べるのか、入れるのか、どっちかにして!」という気分だったんでしょうね。
「!」は「逆さま」の合図
もう一つ、私が初見で「えっ、何これ?」と戸惑ったのが !(びっくりマーク) です。
プログラミングの世界で ! は「否定(〜ではない)」という意味になります。
boolean isSunny = true;(晴れている)boolean isNotSunny = !isSunny;(晴れていない = false)
! をつけるだけで、true が false に、false が true にひっくり返ります。
「!(びっくり)」マークがつくことで意味が「逆さま」になる。なんだか「え、そうなの!?」と驚いているみたいで、一度覚えるとちょっと愛着が湧く記号です。
文字の “true” とは別物!
最後にこれも大事です。
String s = "true"; は、ただの「trueという文字」であって、booleanではありません。
まとめ:次は「もしも(if文)」の世界へ!
今回はJavaの「真偽値(boolean)」について解説しました。
最後に、大事なポイントを振り返ってみましょう。
- booleanの値は
true(真)かfalse(偽)の2つだけ! - 比較した瞬間に、Java君の頭の中では
trueやfalseが生まれている - 「同じかな?」を比べるときは、
==と=を2つ書くのがルール !(びっくりマーク)をつけると、意味が「逆さま」になる
最初は「型なんてどれでも同じじゃないの?」と思っていました。
しかし、こうして一つひとつを丁寧に紐解いていくうちに、Java君がなぜこんなに厳格にルールを決めているのかが少しずつ分かってきました。
データの種類を正しく選ぶことは、プログラムを安全に動かすための「第一歩」なんですね。
さて、この boolean をマスターしたことで、ついにプログラミングの醍醐味である「条件分岐(if文)」の世界へ進む準備が整いました。
「もし〜だったら、こう動く」。そんなプログラムの「知能」とも言える部分を、次回からまた学んでいきましょう!
4月からエンジニアとしての一歩を踏み出す私も、この基礎を武器に、現場で戦える力を身につけていこうと思います。
皆さんも、まずはこの4つの型を使いこなして、コードの世界を楽しんでくださいね。
一緒に頑張りましょう!




