Javaのboolean型とは?使い方やBooleanクラスとの違いも解説

「booleanってどう使うの?」
「booleanとBooleanに違いはあるの?」
「具体的なコーディング例を教えて欲しい」

Javaのbooleanの使い方に関して知っていますか。Javaのbooleanは、真偽 を表す型です。

多くの実装でもよく使われるものなので、理解を深めていきましょう。

この記事ではJavaのbooleanに焦点を当て、サンプルコードをもとにbooleanの基本から応用までを解説します。

booleanとBooleanの違いもまとめているので、ぜひ最後までをご覧ください。

Javaのboolean型とは?

`boolean`は、単純に「はい」や「いいえ」、「真」や「偽」といった2つの選択肢のうちの1つを表すために使われます。

この章では、`boolean`の理解を深めるために以下の項目を解説します。

  • 基本的な特性
  • boolean型の初期値設定

順番にみていきましょう。

基本的な特性

boolean型の値は非常にシンプルで、`true`(真)か`false`(偽)のいずれかです。

例えば、ある条件が真(true)であれば特定の処理を実行し、そうでなければ別の処理を実行する場面で活用されます。

「あなたは成人ですか?」という質問に対する答えをプログラムで表現する場合、`boolean`型の変数を用いることができます。

実際に、サンプルコードを見てみましょう。

public class SimpleAdultCheck {
    public static void main(String[] args) {
        int age = 21; // 年齢を20歳と仮定
        boolean isAdult;

        if (age >= 20) {
            isAdult = true; // 20歳以上であれば、trueを代入
        } else {
            isAdult = false; // 20歳未満であれば、falseを代入
        }

        System.out.println("成人ですか? " + isAdult); // 結果を表示
                                                                                 //出力結果true
    }
}

18歳以上の場合は`isAdult`に`true`を、そうでない場合は`false`が出力されます。

boolean型の初期値設定

変数の「初期値」とは、変数が宣言された直後に持つ値のことを指します。

変数に初期値を設定することは、エラーや予期せぬ挙動を防ぐ上で重要ですよ。

先ほども触れたように、`boolean`の変数には、真を意味する`true`と偽を意味する`false`の2つの値が存在しますが、デフォルトで`false`が初期値として設定されます。

例えば、以下のサンプルコードをみてみましょう。

public class BooleanExample {
    static boolean classBoolean; // クラス変数

    public static void main(String[] args) {
        System.out.println(classBoolean); // 出力: false
    }
}

`classBoolean`というクラス変数が自動的に`false`として初期化され、その値がコンソールに出力されます。

一方、メソッド内で宣言されるローカル変数は自動的に初期化されないため、使用前に明示的に初期値を設定する必要があります。

次のサンプルコードを見てください。

public class LocalBoolean {
    public static void main(String[] args) {
        boolean localBoolean; // 初期化されていない
        // System.out.println(localBoolean); // コンパイルエラーが発生します
    }
}

そのまま実行しようとすると、`localBoolean`が初期化されていないためにエラーが発生します。

エラーを回避するには、明示的に値を設定しますよ。

public class LocalBoolean {
    public static void main(String[] args) {
        boolean localBoolean = false; // 明示的にfalseで初期化
        System.out.println(localBoolean); // 出力: false
    }
}

初期値を明示的に設定することの利点は、プログラムの可読性と予測可能性を高めることです。

実装する際には、初期値をわかりやすく設定するようにしましょう。

Javaのboolean型とBooleanクラスの違い

`boolean`型と`Boolean`クラスは、似ているようでいて、実は異なる性質を持ち、用途に応じて適切に使い分ける必要があります。

以下の表で違いを見ていきましょう。

boolean型 Booleanクラス
型の種類 プリミティブ型 参照型
true/false true/false/null
メモリ効率 高い 低い
処理速度 速い やや遅い

この章では、`boolean`型と`Boolean`クラスの違いを理解するために以下を解説していきます。

  • Booleanクラスの利点
  • Booleanクラスにおけるnullの取り扱い方
  • Booleanを用いた条件分岐のサンプルコード
  • booleanとBooleanの選択基準

順番に解説していきますね。

Booleanクラスの利点

`Boolean`クラスはJavaのラッパークラスの1つで、基本データ型である`boolean`をオブジェクトとして扱えます。

以下のサンプルコードを見てください。

// `true`を持つBooleanオブジェクトの作成
Boolean trueBooleanObject = new Boolean(true);

// 文字列からBooleanオブジェクトを作成
Boolean falseBooleanObject = new Boolean("false");

System.out.println(trueBooleanObject); // 出力: true
System.out.println(falseBooleanObject); // 出力: false

`new Boolean(true)`は`true`を持つ`Boolean`オブジェクトを生成し、`new Boolean(“false”)`は文字列”false”から`false`を持つ`Boolean`オブジェクトを生成します。

他にも、`Boolean`クラスには、`parseBoolean`や`booleanValue`などの便利なメソッドがあります。

以下のサンプルコードを見てください。

// 文字列からBooleanオブジェクトを解析する
Boolean parsedBoolean = Boolean.parseBoolean("true");

// Booleanオブジェクトから基本データ型の値を取得する
boolean primitiveBoolean = parsedBoolean.booleanValue();

System.out.println("解析されたBooleanオブジェクト: " + parsedBoolean); // 出力: true
System.out.println("プリミティブboolean値: " + primitiveBoolean); // 出力: true

`Boolean.parseBoolean(“true”)`を使用して文字列から`Boolean`オブジェクトを解析しています。

そして、`booleanValue()`メソッドを使用して、`Boolean`オブジェクトからプリミティブ型のboolean値を取得していますよ。

`Boolean`ではメソッドを使用することで、文字列から`boolean`値への変換や、`Boolean`オブジェクトとプリミティブ型の間での値の変換が容易です。

Booleanクラスにおけるnullの取り扱い方

`Boolean`クラスは、`true`や`false`だけでなく、`boolean`プリミティブ型にはない`null`も扱えます。

`null`は、「値が未定義」「オブジェクトが存在しない」など何も参照していない状態です。

以下の例では、`Boolean`型の変数`myBoolean`を宣言し、それに`null`を代入しています。

Boolean myBoolean = null;

この時点では、`myBoolean`は何も参照していません。

if (myBoolean == null) {
    System.out.println("myBooleanはnullです。");
}

`Boolean`型の変数`myBoolean`が`null`かどうかをチェックしています。

`null`参照を持つオブジェクトで何らかの操作を行おうとしたときに発生する例外である`NullPointerException`を防ぐために活用できますよ。

Booleanを用いた条件分岐のサンプルコード

次に、`Boolean`を用いた条件分岐を見ていきましょう。

以下のサンプルコードでは、ユーザーがログインしているかどうかをチェックし、その状態に基づいて異なるメッセージを出力します。

public class LoginStateChecker {
    public static void main(String[] args) {
        // ユーザーのログイン状態を表すBoolean変数
        // ここでは3つの状態を示すためにnullを使用しています
        Boolean isLoggedIn = null; // ログイン状態が未定義であると仮定

        // ログイン状態がtrueの場合
        if (Boolean.TRUE.equals(isLoggedIn)) {
            System.out.println("ユーザーはログインしています。");
        }
        // ログイン状態がfalseの場合
        else if (Boolean.FALSE.equals(isLoggedIn)) {
            System.out.println("ユーザーはログインしていません。");
        }
        // ログイン状態が未定義(null)の場合
        else {
            System.out.println("ユーザーのログイン状態は未定義です。");
        }
    }
}

`isLoggedIn`というBoolean型の変数を宣言し、`Boolean.TRUE`(ユーザーがログインしている状態)を代入しています。

if文と`equals`メソッドを使用して、`isLoggedIn`が`Boolean.TRUE`と等しいかどうかをチェックしていますよ。

`Boolean`クラスを使用すると、`true`、`false`の値だけでなく、`null`値も扱うことができ、ログイン状態が未定義であるようなケースにも対応しています。

booleanとBooleanの選択基準

`boolean`(プリミティブ型)と`Boolean`(ラッパークラス)のどちらを使用するかは、ケースによって異なります。

booleanを選ぶべき場合 ・単純な真偽値のチェックが必要な場合
・メモリ使用量を最小限に抑えたい場合
・処理速度を最適化したい場合
Booleanを選ぶべき場合 ・null値を扱う必要がある場合
・ArrayListやHashMapなどのコレクションに真偽値を格納する場合

以下の`boolean`の例では、if文を使って`isLightOn`変数が`true`かどうかを評価しています。

boolean isLightOn = true;
if (isLightOn) {
    System.out.println("部屋は明るいです。");
} else {
    System.out.println("部屋は暗いです。");
}

もし`isLightOn`が`false`だった場合、`else`ブロックが実行され、「部屋は暗いです。」とコンソールに出力されますよ。

以下の`Boolean`の例では、ユーザーのログイン状態を`Boolean`型の変数`isUserLoggedIn`で管理しています。

Boolean isUserLoggedIn = null; // ユーザーのログイン状態が未定義
if (Boolean.TRUE.equals(isUserLoggedIn)) {
    System.out.println("ユーザーはログインしています。");
} else if (Boolean.FALSE.equals(isUserLoggedIn)) {
    System.out.println("ユーザーはログインしていません。");
} else {
    System.out.println("ユーザーのログイン状態は未定義です。");
}

`isUserLoggedIn`が`null`である場合、”ユーザーのログイン状態は未定義です。”と表示されますよ。`Boolean`クラスは`null`値を含むことができるため、値が未定義である場合やデータが存在しない場合に使用できます。

また、静的メソッドがあり、ユーザー入力やファイルから読み込んだ値を扱う際に特に便利ですよ。

Java boolean型の実践的な使い方

基本的な`boolean`の基礎を理解したら、より実践的な書き方をマスターしていきましょう。

Javaの`boolean`を実践的に使用するための以下の方法を紹介します。

  • if文におけるbooleanの応用方法
  • ループ処理におけるbooleanの活用方法
  • boolean型変数の宣言・値の代入方法
  • 三項演算子におけるboolean型の使用方法
  • boolean変数・メソッドの命名規則

実践的な`boolean`の使い方を習得することで、より発展的な処理ができるようになります。

if文におけるbooleanの応用方法

`boolean`型は、単純な`true`と`false`の値を持ち、主に条件分岐で活躍します。

`boolean`型の変数を組み合わせて、より複雑な条件を見ていきましょう。

boolean isWeekend = true;
boolean isSunny = false;
if (isWeekend && isSunny) {
    System.out.println("ピクニックに行きましょう!");
} else {
    System.out.println("家でリラックスしましょう。");
}

`&&`演算子は論理`AND`を意味し、両方の条件が真である場合に`true`を返します。

サンプルコードでは、`isWeekend`と`isSunny`の両方が`true`である場合にのみ、「ピクニックに行きましょう!」と出力しますよ。

ループ処理におけるbooleanの活用方法

`boolean`型の変数を用いることで、特定の条件下で処理を継続または停止させられます。

まずは、while文を使ったサンプルコードを見ていきましょう。

boolean continueLoop = true;
int count = 0;

while (continueLoop) {
    System.out.println("ループを実行中です。");
    count++;
    if (count == 5) {
        continueLoop = false; // ループを終了させる条件
    }
}

whileループは、指定された条件が`true`である限り、ループ内のコードブロックを繰り返し実行します。

この例では、`continueLoop`というboolean型の変数を使用してループの実行を制御し、`count`が5に達すると、`continueLoop`を`false`に設定し、ループから抜け出しますよ。

次に、forループでは、通常、初期化部、条件部、反復部を一行で記述しますが、`boolean`型の変数を条件部に使用することもできます。

サンプルコードを見ていきましょう。

boolean isFinished = false;
for (int i = 0; !isFinished; i++) {
    System.out.println("処理を実行中です。");
    if (i == 4) {
        isFinished = true; // 処理を終了させる条件
    }
}

for文で`boolean`型の変数を用いることで、ループの終了時期を制御できます。

この例では、`isFinished`が`true`になるとループが終了しますよ。

boolean型変数の宣言・値の代入方法

`boolean`型変数を宣言するには、以下のようにを使用します。

boolean isRainy;

`isRainy`という名前の`boolean`型変数を宣言していますが、まだ値は代入していません。

宣言した`boolean`型変数に値を代入するには、次のようにします。

isRainy = true;

宣言と同時に値を代入することも可能です。

boolean isRainy = true;

これらを実践的に使うと以下のようになります。

if (isRainy) {
    System.out.println("傘を持っていきましょう。");
} else {
    System.out.println("傘は不要です。");
}

`isRainy`が`true`の場合に「傘を持っていきましょう。」と出力し、`false`の場合に「傘は不要です。」と出力します。

`boolean`型変数は、ループの継続条件としても利用できますよ。

boolean continueLoop = true;
int count = 0;

while (continueLoop) {
    System.out.println("ループ処理中...");
    if (++count == 5) {
        continueLoop = false;
    }
}

`continueLoop`変数が`false`になるまで`while`ループが続行されます。

三項演算子におけるboolean型の使用方法

三項演算子は、簡単な条件分岐を1行で書くことができ、ある条件が`true`か`false`かによって、2つの異なる値や処理のいずれかを選択する際に使用されます。

三項演算子は次のような形式をとります。

条件式 ? 値1 : 値2;

「条件式」は`boolean`型の式で、この条件が`true`の場合は「値1」が、`false`の場合は「値2」が結果として選ばれます。

以下の例では、`isRainy`という`boolean`型の変数を条件式として記述していますよ。

boolean isRainy = true;
String message = isRainy ? "傘を持っていきましょう。" : "傘は必要ありません。";
System.out.println(message);

`isRainy`が`true`であれば、”傘を持っていきましょう。”が`message`に代入され、`false`であれば”傘は必要ありません。”が代入されます。

少し複雑な条件を見てみましょう。

int score = 85;
String result = score >= 80 ? "合格" : "不合格";
System.out.println("試験の結果は" + result + "です。");

上記では、`score`変数の値に基づいて、試験の合否を判断しています。

スコアが80以上であれば”合格”、そうでなければ”不合格”という結果を`result`に代入し、結果を出力していますよ。

boolean変数・メソッドの命名規則

`boolean`型の変数やメソッドの命名規則は、コードの可読性と保守性を高めるために非常に重要です。

`boolean`型の変数名は、`is`、`has`、`can`、`should`などの前置詞で始め、変数が真偽値を保持していることを明確にします。

変数名は、その変数が表す状態や条件を明確に反映するようにしましょう。

命名規則の具体例は以下の通りです。

  • `boolean isFinished = false;`(処理が完了しているかどうか)
  • `boolean hasLicense = true;`(ライセンスを持っているかどうか)
  • `boolean canProceed = true;`(処理を進めることができるかどうか)

boolean型の値を返すメソッド名も同様ですよ。

  • `public boolean isUserLoggedIn() { … }`(ユーザーがログインしているかどうかをチェック)
  • `public boolean hasValidCredentials() { … }`(有効な資格情報を持っているかどうかをチェック)
  • `public boolean canAccessResource() { … }`(リソースにアクセスできるかどうかをチェック)

適切な命名規則を採用することで、コードを読んだだけでその変数やメソッドが何を意味するのかが直感的に理解できるようになりますよ。

Javaプログラミングのスキルを活かして収入を増やすなら

なかには、副業での収入獲得やフリーランスへの独立を目的にJavaプログラミングのスキル習得に励んでいる人もいますよね。

ただ、身につけたスキルをどう収入UPに繋げればいいのか、イメージが湧かない人もいるはず。

そんな方は、ぜひフリーランスのミカタをご活用ください。

出典:フリーランスのミカタ

フリーランスのミカタは、平均単価80万円以上の案件を取り揃える、ITエンジニアに特化したフリーランスエージェントです。具体的には、次のような週3回からフルリモートで請け負える案件を豊富に掲載しています。

また希望年収や稼働時間だけでなく、扱うプログラミング言語などを細かく指定して案件を探せるため、自分にあう仕事を見つけやすいサイト仕様になっています。

ただし、上記のような案件は条件として2〜3年の実務経験が求められるケースが多いです。そのため、応募する際はどれくらいの経験が必要なのかを前もってチェックしておきましょう。

フリーランスのミカタを活用すれば、中・長期的な安定収入が得られる案件が見つかりますよ。

どんな案件が掲載されているか気になる人は、下のボタンから自分にあう案件を探してみてください。

まとめ

これまで、Javaの`boolean`について紹介してきました。`booleanbは真偽 を表す際に使われます。

`boolean`型変数は、`is`、`has`、`can`、`should`などの前置詞を使うことで、変数が何を意味するのかを直感的に理解できるようになります。

まだまだ知識が浅く、Javaの他の処理に関しても基礎知識をつけたい!注意点や実践的な使い方を知りたい!という方もいるでしょう。

本記事ではプログラミングに関する多くの疑問を解決できるので、参考にしてみてくださいね。