【Java】レッスン3-03:boolean型メソッドの使い方と判定処理の基本を学ぼう

tggaa478@yahoo.co.jp

一つ前のページではメソッドの戻り値について学習しました。

今回は 真偽値を返すメソッド について見ていきましょう。

Lesson1:基礎文法編
Lesson2:制御構造編
Lesson3:メソッド編

 ・Lesson3-1:メソッドの基本を確認しよう
 ・Lesson3-2:メソッドの戻り値を理解しよう
 ・Lesson3-3:真偽値を返すメソッドを理解しよう ◁今回はココ
 ・Lesson3-4:メソッドのオーバーロードを理解しよう
 ・Lesson3-5:ジェネリクスを理解しよう
 ・確認問題3-☆1:石取りゲームを作ろう
 ・確認問題3-☆2:丁半賭博ゲームを作ろう
Lesson4:コレクション編
Lesson5:クラス

<<前のページ

学習記事一覧

次のページ>>

Javaのboolean型メソッドとは|true・falseで条件を判定する方法

Javaではメソッドを使って特定の条件に基づいて処理を行うことが可能です。

その中でも真偽値を返すメソッドは、条件に合致するかどうかを確認し、trueまたはfalseのいずれかを返すメソッドのことを言います。

本記事では真偽値を返すメソッドの基本的な使い方と、活用例について解説します。

boolean型の基本とJavaにおけるtrue/falseの意味

真偽値を返すメソッドとは、条件に基づいた処理の結果としてboolean型の値(truefalse)を返すメソッドです。

このようなメソッドは条件に合致するかどうかを判定する場面で役立ちます。

例えば入力された文字列が空であるかどうかや、特定の値が配列に含まれているかどうかを確認する場合に真偽値を返すメソッドが利用されます。

isEvenメソッドを作成して偶数・奇数を判定する例

次に真偽値を返すメソッドの簡単な例として、ある数が偶数かどうかを判定するisEvenメソッドを実装してみましょう。

このメソッドは整数を引数として受け取り、その数が偶数ならtrue、奇数ならfalseを返します。

public class Main {
    // 真偽値を返すメソッドの定義
    public static boolean isEven(int number) { //boolean型のisEvenメソッドの定義
        return number % 2 == 0;  // 偶数ならtrue、奇数ならfalseを返す
    }

    public static void main(String[] args) { //メインメソッド
        int num = 4;

        // isEvenメソッドの呼び出しと結果の表示
        if (isEven(num)) {
            System.out.println(num + "は偶数です。");
        } else {
            System.out.println(num + "は奇数です。");
        }
    }
}

このコードではisEvenメソッドが引数として与えられた整数が偶数かどうかを判定し、結果としてtrueまたはfalseを返します。

例えば変数numが4であれば、isEven(num)trueを返し、4は偶数です。と表示されます。

このように真偽値を返すメソッドは条件判断を簡潔に表現できるため、コードの可読性や再利用性が向上します。

isEmptyやcontainsなどJava標準メソッドの活用例

Javaには既に多くの便利な真偽値を返すメソッドが用意されています。

以下に代表的なメソッドをいくつか紹介します。

  • isEmpty()Stringクラスに属するメソッドで、文字列が空の場合にtrueを返します。たとえば、"".isEmpty()trueを返し、"hello".isEmpty()falseを返します。
  • contains()StringクラスやListクラスなどに属し、指定された要素や文字列が含まれている場合にtrueを返します。たとえば、"hello".contains("he")trueを返し、"hello".contains("world")falseを返します。
  • startsWith() / endsWith()Stringクラスのメソッドで、文字列が特定の文字列で始まるか、または終わるかを確認できます。例えば、"hello".startsWith("he")trueを返します。

これらのメソッドを活用することで、文字列やリスト内での特定の条件チェックを効率的に行えます。

boolean型メソッドのまとめ|条件分岐をシンプルに記述しよう

真偽値を返すメソッドは条件に基づく判断を行う際に非常に便利です。

条件に応じてtruefalseを返すことで複雑な条件分岐を簡潔に記述できるため、コードの可読性が向上します。

Javaの標準ライブラリにも多くの真偽値メソッドが含まれているため、必要に応じて使いこなしてみましょう。

練習問題|割り切り判定プログラムでbooleanメソッドを活用しよう

数値が特定の値で割り切れるかどうかを判定するプログラムを作成しましょう。

このプログラムでは10という固定の値に対して、ユーザーが入力した数値で割り切れるかを判定します。

割り切れる場合には「割り切れる: true」、割り切れない場合には「割り切れない: false」と表示されます。

また入力値が0以下または10を超える場合は「割り切れない」と判定されます。

この問題の要件

以下の要件に従ってコードを完成させてください。

  1. メソッド名isDividable
  2. 引数
    • 整数 a(固定値として10を代入すること)
    • 整数 b(ユーザーから入力する値)
  3. 処理内容
    • b が0以下、または10より大きい場合は false を返すこと。
    • a を b で割った結果が余りなく割り切れる場合に true を返すこと。
    • main メソッドで Scanner を使用し、ユーザーから b の値を入力させること。
    • isDividable メソッドを呼び出して、結果を表示すること。
  4. 表示形式
    • 割り切れる: true または 割り切れない: false と出力すること。

ただし、以下のような実行結果となること。

割る数を入力してください (0 < b <= 10): 5
割り切れる: true
割る数を入力してください (0 < b <= 10): 3
割り切れない: false

この問題を解くヒント

1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。

Q
ヒント1【コードの構成を見る】

正解のコードは上から順に以下のような構成となっています。
(※下記の□はコード内のインデントを表しています)

1:Scannerクラスをインポート
2:Mainクラスの定義
  □ isDividableメソッドの定義
  □ □ bが0または10より大きい場合はfalseを返す
  □ □ aがbで割り切れる場合はtrueを返す
  □ mainメソッドの定義
  □ □ 変数aに10を代入
  □ □ Scannerオブジェクトscannerの初期化
  □ □ 「割る数を入力してください (0 < b <= 10): 」と出力
  □ □ ユーザーから整数値を入力し、変数bに代入
  □ □ if文にてisDividableメソッドの戻り値がtrueか判定
  □ □ □ 真の場合、「割り切れる: true」と出力
  □ □ else
  □ □ □ 偽の場合、「割り切れない: false」と出力

Q
ヒント2【穴埋め問題にする】

以下のコードをコピーし、コメントに従ってコードを完成させて下さい。

import java.util.Scanner;

public class Main {
    // aをbで割り切れるか判定するメソッド
    public static boolean isDividable(int a, int b) {
        /*【穴埋め問題1】
        ここでbが0または10より大きいかを判定し、該当する場合はfalseを返すコードを書いてください。(早期リターン)
        */

        /*【穴埋め問題2】
        ここでaがbで割り切れるかを判定し、その結果を返すコードを書いてください。
        */
    }

    public static void main(String[] args) {
        int a = 10; // 固定値
        Scanner scanner = new Scanner(System.in); // 入力の基本

        System.out.print("割る数を入力してください (0 < b <= 10): ");
        int b = scanner.nextInt(); // ユーザーからbの値を入力

        // isDividableメソッドを呼び出し、結果を確認して出力
        /*【穴埋め問題3】
        ここでisDividableメソッドを呼び出し、その結果に応じて「割り切れる: true」または「割り切れない: false」と出力するコードを書いてください。
        */
    }
}

このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。

練習問題の解答と解説

この問題の正解コードとその解説は以下の通りです。

クリックして開いて確認してください。

Q
正解コード
import java.util.Scanner;

public class Main {
    // aをbで割り切れるか判定するメソッド
    public static boolean isDividable(int a, int b) {
        // bが0または10より大きい場合は早期リターンでfalseを返す
        if (b == 0 || b > 10) {
            return false;
        }
        // aがbで割り切れるかを判定し、結果を返す
        return a % b == 0;
    }

    public static void main(String[] args) {
        int a = 10; // 固定値
        Scanner scanner = new Scanner(System.in); // 入力の基本

        System.out.print("割る数を入力してください (0 < b <= 10): ");
        int b = scanner.nextInt(); // ユーザーからbの値を入力

        // isDividableメソッドを呼び出し、結果を確認して出力
        if (isDividable(a, b)) { // if文による分岐処理
            System.out.println("割り切れる: true");
        } else {
            System.out.println("割り切れない: false");
        }
    }
}
Q
正解コードの解説

コードをブロックごとに分割して解説します。

import文とクラスの定義

import java.util.Scanner;
public class Main {
  • import java.util.Scanner;:ユーザーからの入力を受け取るために、Scannerクラスをインポートしています。Scannerクラスを使うと、コンソールからユーザーが入力したデータをプログラムに読み込むことができます。
  • public class Main {:Javaのクラスを定義しています。このクラスの名前はMainで、プログラム全体のエントリーポイントとなります。

isDividableメソッドの定義

public static boolean isDividable(int a, int b) {
    if (b == 0 || b > 10) {
        return false;
    }
    return a % b == 0;
}
  • public static boolean isDividable(int a, int b) {:このメソッドは、「aがbで割り切れるかどうか」を判定するメソッドです。戻り値がboolean型(真偽値)であることがポイントです。割り切れる場合はtrue、割り切れない場合はfalseを返します。
  • if (b == 0 || b > 10) { return false; }:ここでは、bが0または10より大きい場合に、割り算ができないためfalseを返します。bに0が入力されるとエラーになるため、事前にチェックしています。
  • return a % b == 0;abで割った余りが0であれば割り切れるので、trueを返します。

mainメソッドの定義

public static void main(String[] args) {
    int a = 10; // 固定値
    Scanner scanner = new Scanner(System.in); // 入力の基本
  • public static void main(String[] args) {mainメソッドはプログラムのエントリーポイントです。ここからプログラムが実行されます。
  • int a = 10;:今回は10という固定の値を使って、割り切れるかどうかを調べます。
  • Scanner scanner = new Scanner(System.in);Scannerオブジェクトを作成し、コンソールからユーザーが入力できるようにします。

ユーザーからの入力とメソッドの呼び出し

System.out.print("割る数を入力してください (0 < b <= 10): ");
int b = scanner.nextInt(); // ユーザーからbの値を入力
  • System.out.print("割る数を入力してください (0 < b <= 10): ");:ユーザーに「割り切り判定をしたい数(b)」を入力してもらうためにメッセージを表示します。
  • int b = scanner.nextInt();:ユーザーが入力した値を整数として読み込み、bに代入します。

isDividableメソッドの呼び出しと結果の表示

if (isDividable(a, b)) {
    System.out.println("割り切れる: true");
} else {
    System.out.println("割り切れない: false");
}
  • if (isDividable(a, b)) {:ここでisDividableメソッドを呼び出し、abが割り切れる場合はtrueを返します。
  • System.out.println("割り切れる: true");trueが返された場合、「割り切れる: true」と表示されます。
  • System.out.println("割り切れない: false");falseが返された場合、「割り切れない: false」と表示されます。

まとめ

このプログラムではユーザーからの入力を使って割り切り判定を行う方法を学びました。

特に「真偽値を返すメソッド」の使い方に注目し、割り切り判定の条件分岐の考え方を身につけることができます。

メソッドを使うことで同じ処理を再利用しやすくなります。Javaプログラムの基礎を理解し、ぜひ他のケースでもこの考え方を試してみてください。

もっと分かりやすい学習サイトにするために

この記事を読んで「ここが分かりにくかった」「ここが難しかった」等の意見を募集しています。

世界一わかりやすいJava学習サイトにするため、ぜひ 問い合わせフォーム からご意見下さい。

<<前のページ

学習記事一覧

次のページ>>

記事URLをコピーしました