Java言語におけるプログラムでは真偽値(true/false)を判定するために「boolean型」を利用します。
本記事では、Javaでの「booleanの使い方」から「booleanとBoolean」の違いなど基礎的な部分を中心にご紹介していきたいと思います。
目次
Javaのboolean型とは
Javaのboolean型とは「真偽値型」と呼ばれ、「true」または「false」のどちらかのデータのみが設定されるデータ型となります。
booleanを利用するのはどんなとき?
booleanは主に、条件によって処理を分岐する際の判定として利用されます。
Javaプログラミングにおける使用頻度は非常に高いと言えます。
booleanとBooleanは別物?
「boolean」と「Boolean」は同じように見えますが、使い方が異なりますので注意が必要です。
booleanとは
まず全て小文字の「boolean」はプリミティブ型に該当します。
プリミティブ型は「int」や「char」などと同じで、プログラミング言語の仕様として用意されている基本的な型となります。
Booleanとは
次に、頭文字が大文字となっている「Boolean」は参照(リファレンス)型に該当し、boolean型のラッパークラスとなります。
boolean型をオブジェクトとして利用したい場合に用いられるのが「Boolean」クラスとなります。
Boolean型では、String型をBoolean型に変換するメソッドをはじめとした様々なメソッドやnull値を扱うことも可能です。
Javaのboolean型を実際に使ってみよう
ここからはJavaのサンプルコードを掲載しながらboolean型の使い方についてご紹介していきます。
booleanは初期値の設定が必要
booleanでは初期値として「true」または「false」のいずれかを設定する必要があります。
import java.util.*; public class Main { public static void main(String[] args) throws Exception { boolean isBool = false; // 変数の宣言と同時に初期値を設定 System.out.println(isBool); } }
上記を実行した結果は初期値に設定した「false」が出力されます。
if文でのbooleanの使い方
if文でのbooleanの使い方は下記のサンプルコードのような記述となります。
import java.util.*; public class Main { public static void main(String[] args) throws Exception { boolean bool1 = false; if(bool1) { System.out.println("bool1の値はtrueです"); } else { System.out.println("bool1の値はfalseです"); } int number = 100; boolean isResult = number < 200; if(isResult) { System.out.println("isResultの値はtrueです"); } else { System.out.println("isResultの値はfalseです"); } } }j
上記のコードを実行した結果が下記となります。
bool1の値はfalseです isResultの値はtrueです
1つ目の結果は、初期値として設定した値が「false」のため、条件分岐で「else」側の結果が出力されています。
2つ目の結果は、変数「number」に設定した値「100」と「200」どちらが小さいかを比較し、結果を変数「isResult」に代入し条件分岐に利用しています。
「isResult」に代入された値は「true」となるため、上記のような結果が出力されています。
while文でのbooleanの使い方
while文でのbooleanの使い方は下記のサンプルコードのような記述となります。
import java.util.*; public class Main { public static void main(String[] args) throws Exception { boolean bool = true; // 初期値設定 int count = 1; // 初期値設定 while(bool) { System.out.println("countの値は" + count + "です。"); if(count == 5) { bool = false; // countの値が5になれば実行される処理 } count++; // 変数「count」の値に1を足す。 } } }
結果は下記の通りとなります。
countの値は1です。 countの値は2です。 countの値は3です。 countの値は4です。 countの値は5です。
while文の判定としてboolean型を利用しており、ループ処理を実行しています。
変数「count」の値を1つずつ繰り上げていき、5になった時点でboolean型の変数「bool」を「false」に設定しています。
while文の判定として「bool」の値が「true」の間処理を継続するため、5回分の処理結果が出力されることになります。
JavaのBoolean型を使ってみよう
参照型のBoolean型についてもサンプルコードで基礎的な内容をご紹介していきたいと思います。
Boolean型を利用したif文の処理分岐
import java.util.*; public class Main { public static void main(String[] args) throws Exception { Boolean bool = Boolean.valueOf(true); if(bool) { System.out.println("boolの値はtrueです"); } else { System.out.println("boolの値はfalseです"); } } }
上記のサンプルコードを実行した結果は下記の通りとなります。
boolの値はtrueです
Boolean型にnullが設定されている場合の挙動を確認しよう
Boolean型にはnullを設定出来ると上述しましたが、NullPointerExceptionが起きてシステムエラーとなる可能性が出てくるため十分に注意が必要となります。
import java.util.*; public class Main { public static void main(String[] args) throws Exception { Boolean bool = null; if(bool) { System.out.println("boolの値はtrueです"); } else { System.out.println("boolの値はfalseです"); } } }
上記のサンプルコードを実行するとNullPointerExceptionが起こります。
Boolean型を利用する場合には下記のサンプルコードのようにnull値が設定されていないか確認する必要があります。
import java.util.*; public class Main { public static void main(String[] args) throws Exception { Boolean bool = null; if(bool == null) { System.out.println("boolの値はnullです"); } else if(bool) { System.out.println("boolの値はtrueです"); } else { System.out.println("boolの値はfalseです"); } } }
サンプルコードの結果は下記の通り出力されます。
boolの値はnullです
このように参照型のBooleanを利用する際は、nullチェックを行う必要があることを意識しておく必要があります。
さいごに:基本的にはプリミティブ型であるbooleanを利用する
Javaでは特に理由がない場合には、プリミティブ型である「boolean」を利用すべきです。
真偽値判定のみを行いたい場合には必ず値が設定される「boolean」を利用して余計なバグを生み出さないようなプログラム作りを心掛けておきましょう。
boolean型に「null」を設定することは出来ないことは覚えておきましょう。