【Java】booleanとは?使い方とBooleanの違いを解説!
プログラムでは多くの場合、次のような2つの値のいずれか1つしか持てないデータ型があります。
⚫︎ はい・いいえ
⚫︎ オンオフ
⚫︎ 真/偽
のようにその1つしか持てないデータ型を判定するためにbooleanを利用します。
また、booleanは小文字のboolean型と先頭が大文字のBooleanクラスがあり、使用の仕方が異なりますので使いわけには注意が必要です。
今回は、booleanの使い方と
⚫︎ if文でbooleanを使用した場合
⚫︎ while文でbooleanを使用した場合
⚫︎ for文でbooleanを使用した場合
⚫︎ booleanとBooleanとの違い
について解説しています。
目次
booleanとは
booleanとは「真偽値型」と呼ばれ、真(true)、偽(false)の2択を表すデータ型となります。
それぞれの意味は、
⚫︎ true = 真 → はい
⚫︎ false = 偽 → いいえ
と覚えておくとよいでしょう。
また、booleanは「null」を設定することは出来ませんので注意してください。
booleanの書き方
boolean構文は下記となります。
⚫︎ 真を定義する場合
1 |
boolean d = true; |
⚫︎ 偽を定義する場合
1 |
boolean d = false; |
booleanは主に、条件によって処理を分岐する際の判定として利用されますので、Javaプログラミングにおける使用頻度は非常に高いと言えます。
booleanは初期値の設定が必要
booleanでは初期値として「true」または「false」のいずれかを設定する必要があります。
例
1 2 3 4 5 6 |
public class Main { public static void main(String[] args) throws Exception { boolean isBool = false; System.out.println(isBool); } } |
出力結果
false
しかし、初期値にnullを設定した場合は
例
1 2 3 4 5 6 |
public class Main { public static void main(String[] args) throws Exception { boolean isBool = null; System.out.println(isBool); } } |
出力結果
Main.java:6: error: incompatible types:
booleanはnullをコンバートできないというエラーが発生します。
booleanを使ったサンプルコード
if文でbooleanを使用する場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
public class Main { public static void main(String[] args) throws Exception { boolean boolA = false; if(bool1) { System.out.println("boolAの値はtrue"); } else { System.out.println("boolAの値はfalse"); } int number = 100; boolean resultA = number < 200; if(resultA) { System.out.println("resultAの値はtrueです"); } else { System.out.println("resultAの値はfalseです"); } } } |
出力結果
boolAの値はfalse
resultAの値はtrue
boolAはfalseのためelse内の処理を実行され。resultAは”number(100) < 200"の比較のため、trueとなりif内の処理を実行されます。
while文でbooleanを使用する場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
public class Main { public static void main(String[] args) throws Exception { boolean bool = true; // 初期値設定 int count = 1; // 初期値設定 while(bool) { System.out.println("カウントの値は" + count + "です。"); if(count == 8) { bool = false; // countの値が8になれば実行される処理 } count++; // 変数「count」の値に1を足す。 } } } |
出力結果
countの値は1です。
countの値は2です。
countの値は3です。
countの値は4です。
countの値は5です。
countの値は6です。
countの値は7です。
countの値は8です。
ループ1回目は変数countの値が1で、”1 == 8″″の比較のため、trueとなり、ループ内部を実行します。
また、ループ4回目は変数countの値が4で、”4 == 8″″の比較のため、trueとなり、ループ内部を実行します。
そして、ループ8回目は変数countの値が8で、”8 == 8″の比較のため、falseとなり、ループを終了します。
for文でbooleanを使用する場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
public class Main { public static void main(String[] args) throws Exception { // booleanの初期値設定 boolean bool = true; for (int count = 0; count <= 8; count++) { System.out.println("カウントの値は" + count + "です。"); if(count == 6) { // countの値が6になれば実行される処理 bool = false; } if(bool == false) { break; } } } } |
出力結果
カウントの値は0です。
カウントの値は1です。
カウントの値は2です。
カウントの値は3です。
カウントの値は4です。
カウントの値は5です。
カウントの値は6です。
for文はそもそも条件式がtrue、falseではない為、boolean型を使用するのは難しいです。
また、if文でfalseになったとしてもbreak句で処理を強制終了させないといけません。
booleanにnullを使用する場合
例
1 2 3 4 5 6 7 8 9 |
public class Main { public static void main(String[] args) throws Exception { // booleanの初期値設定 boolean bool = null; System.out.println(bool); } } |
出力結果
Main.java:5: error: incompatible types:
booleanはnullを設定することができないため、エラーとなります。
booleanとBooleanの違い
Booleanとは、boolean型のラッパークラスのことで、boolean型を便利に使うためのメソッドを持ちます。
booleanはプリミティブ型であり、trueやfalseを返す基本的な型となります。
また、Booleanはboolean型のラッパークラスでboolean型をオブジェクトとして扱いたいときに使用します。
boolean型はtrueとfalseしか定義できないものに対してBooleanはメソッドも準備されており、true、false、nullを判定するときなどにすごく便利です。
イメージはBooleanクラスの中にbooleanの型がある状態となります。
その為、ただただ真偽の値のみを扱いたい場合はboolean型を使い、真偽の値を使って「nullチェックを行いたい」などの複雑な処理を行いたい場合はBooleanクラスを使えば良いでしょう。
名前 | 種類 | 説明 |
---|---|---|
boolean | 型 | true/falseを返す基本的な型。 |
Boolean | クラス | boolean型などが準備されているクラス。 boolean型を便利に扱うためのnullチェックやvalueOf()などのメソッドがある。 |
Booleanを使ったサンプルコード
if文でBooleanを使用する場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public class Main { public static void main(String[] args) throws Exception { Boolean tf = Boolean.valueOf(false); if(tf) { System.out.println("trueです。"); } else { System.out.println("falseです。"); } } } |
出力結果
falseです。
Boolean型でも、「Boolean 変数 = false;」でbool型を定義できますが、Boolean型には指定された boolean値を表すvalueOf()メソッドがありますので今回はそのメソッドを使用しています。
Booleanにnullを使用する場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
public class Main { public static void main(String[] args) throws Exception { Boolean tf = null; if(tf == null) { System.out.println("nullです。"); } else if(tf) { System.out.println("trueです。"); } else { System.out.println("falseです。"); } } } |
出力結果
nullです。
boolean型に比べてBoolean型はnullを設定することができます。
しかし、Boolean型でnullを設定する場合は、nullチェックを行う必要がありますので注意してください。
今日のポイント
booleanは基本的な型でBooleanはクラス
⚫︎ boolean型はtrueかfalseのどちらかを扱う場合に使用する(nullは設定できない)
⚫︎ boolean型はif文やwhile文などの真偽によって処理が決まる文法には適している
⚫︎ Booleanはラッパークラスであり、Booleanを使えば便利なメソッドを使用できる
⚫︎ 複雑な処理を行いたい場合はBooelanクラスを使用し、ただただ真偽の変数を使用したい場合には、boolean型を使用すべき
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。