【Java入門】booleanとBooleanの使い方(初期値も解説)

こんにちは!システムエンジニアのオオイシです。

Java言語のデータ型にはint(整数型)やString(文字列型)などのさまざまな型が存在しますが、“true”か”false”を判定するためにはboolean(ブーリアン)型を使います。

この記事では、

  • boolean型とは
  • boolean型の使い方
  • boolean型をif文の条件分岐で使う方法


という基本的な内容から、boolean型の初期値、booleanとBooleanの違い、Booleanのnullなどの応用的な内容についても解説していきます。

今回はこれらの方法を覚えるために、boolean型の使い方をわかりやすく解説します!

なお、Javaの記事については、こちらにまとめています。

目次

boolean型とは

boolean型とは、true(トゥルー) またfalse(フォールス)のどちらかのデータが必ず入ることが決まっているデータ型です。2度書きますがtrueまたはfalse以外は入りません!

それぞれの意味は、
true =  真 → はい
false =  偽 → いいえ
と覚えておくとよいでしょう。

このboolean型を使う主な場面は、if文やfor文などの制御文での条件分岐のときです。

boolean型の使い方

boolean型はデータ型ですので、プログラムで使う前に「trueまたはfalseを入れます!」と事前に宣言する必要があります。

使い方をイメージしやすいように「あなたの年齢は10歳以上ですか?」という質問の結果を入れるboolean型を作ってみます。次のプログラムで確認してみましょう。

public class Main {
    public static void main(String[] args) {
        boolean isOverTeenage = false; // いいえ(false)
        System.out.println(isOverTeenage);
    }
}

実行結果:

false

 

次に「あなたの年齢は10歳以上ですか?」の判定結果をboolean型の変数に入れるプログラムを確認してみましょう。

public class Main {
    public static void main(String[] args) {
        boolean isOverTeenage; // boolean型の変数を宣言
        int yourAge = 18; // あなたは18歳

        isOverTeenage = (yourAge >= 10); // 【条件式】

        System.out.println(isOverTeenage);
    }
}

実行結果:

true

このようにboolean型は、true(はい)またはfalse(いいえ)の判定結果を入れるために利用します。

boolean型をif文の条件分岐で使う方法

boolean型を使う主な場面は、if文や for文などの条件分岐で使うことを前述しました。

ここでは、if文の条件分岐でboolean型を使う方法を解説します。次のプログラムで確認してみましょう。

public class Main {
    public static void main(String[] args) {
        boolean isOverTeenage = false; // boolean型の変数を宣言
        int yourAge = 18; // あなたは18歳

        isOverTeenage = (yourAge >= 10); // あなたは18歳ですが10歳以上ですね?

        if (isOverTeenage) { // isOverTeenage は true が入る
            System.out.println("あなたは10歳以上です!");
        } else {
            System.out.println("あなたは10歳未満です!");
        }
    }
}

実行結果:

あなたは10歳以上です!

このようにif文の判定にboolean型を使うことで、条件分岐の処理を記述することができました。if文の使い方についてはこちらの記事で詳しく解説しているので、ぜひ確認してみてください。

boolean型の初期値

boolean型の初期値はfalseが入ります。初期値とは、変数を宣言した時にはじめから入っている値のことです。例を見て確認してみましょう。

public class Main {
    static boolean bool; // booleanをクラス変数で宣言

    public static void main(String[] args) {
        System.out.println(bool);
    }
}

実行結果:

false

注意してほしいのが、ローカル変数を宣言した時は初期値が入らないことです。初期値にfalseが入るのは、インスタンス変数またはクラス変数として宣言したときです。

なお、ローカル変数とはメソッド内で宣言した変数です。インスタンス変数とはクラス内で宣言した変数です。

クラス変数の使い方についてはこちらの記事で詳しく解説しているので、ぜひ確認してみてください。

メソッド内で宣言したローカル変数で、初期化(※初期値を明示的に入れること)しないまま変数を利用するとエラーになります。実行してエラーになるのを確認してみましょう。

public class Main {
    public static void main(String[] args) {
        boolean bool; // boolean をローカル変数で宣言
        System.out.println(bool);
    }
}

実行結果:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
  The local variable isOverTeenage may not have been initialized

そのため、ローカル変数として宣言する時は初期化は必ずしましょう!

booleanとBooleanの違いを解説

Booleanとは

Booleanとは、boolean型ラッパークラスのことで、boolean型を便利に使うためのメソッドを持ちます

Boolean

boolean型とBooleanクラスの違いを表にしました。

名前名前変数としての特徴
boolean型プリミティブ型値を持つ
Booleanクラス参照型クラスまたはインスタンスを参照する

ラッパークラスについてはこちらの記事で詳しく解説しているので、ぜひ確認してみてください。

Booleanはnullが使える

Booleanはクラスなのでnullも表現できます。nullとは何も定義されていない特殊な参照です。

public class Main {
    public static void main(String[] args) {
        Boolean bool = Boolean.valueOf(true);
        System.out.println(bool);

        bool = null;
        System.out.println(bool);
    }
}

実行結果:

true
null

nullが入っている変数を実行した場合は、Booleanに限らず「NullPointerException」が投げられるので取り扱いには注意しましょう。

BooleanはtoStringメソッドなどが使える

Booleanはboolean型のラッパークラスなので、booleanを使う上で便利なメソッドが存在します。

BooleanのtoStringメソッドはboolean型の値を文字列で返してくれます。trueが入っている時は“true”、falseは“false”が返ります。

public class Main {
    public static void main(String[] args) {
        Boolean bool = Boolean.valueOf(true);
        System.out.println(bool.toString());
    }
}

実行結果:

true

toStringメソッドの利用場面は、例えば、文字列型(String) “true” とboolean型のtrueが同じかを比較したい場合に使います。

public class Main {
    public static void main(String[] args) {
        Boolean bool = Boolean.valueOf(true); // Booleanクラスの true
        String isStringBool = "true"; // String型の "true"
        
        // 文字列を取得(toString()) した結果と比較する
        String str = bool.toString();
        if (str.equals(isStringBool)) {
            System.out.println("str と isStringBool は同じです");
        } else {
            System.out.println("str と isStringBool は異なります");
        }
    }
}

実行結果:

str と isStringBool は同じです

文字列の“true”とbooleanのtrueが同じ判定になりました!

文字列の比較についてはこちらの記事で詳しく解説しているので、ぜひ確認してみてください。

変数とデータ型についてはこちらで解説

本記事では、boolean型について詳しく説明しましたが、変数の宣言やデータ型全般の説明については、こちらの記事で詳しく解説しているので、ぜひ確認してみてください。

まとめ

いかかでしたか?

今回はboolean型とラッパークラスであるBooleanの使い方について説明しました。boolean型は”true”か”false”のどちらかの真偽値を扱う場合に使用します。ラッパークラスのBooleanを使えば便利なメソッドが使えるのでぜひ活用してください。

もし、boolean型の使い方を忘れてしまったらこの記事を確認してください!

この記事を書いた人

システムエンジニア歴15年のオオイシです!好物は Java と Ruby。プログラミング、システムアーキテクトからマネジメントに到るまでなんでも食べます。
システム開発の相談やお困りごとがあればお気軽に
makoto.oishi.0705@gmail.com まで連絡頂けると幸いです

目次