この記事で学べる知識:真偽値を返すメソッド
この記事の練習問題で使用する知識:
基礎構文と制御構造(レッスン1~2)、メソッドの定義と呼び出し、メソッドの戻り値、真偽値を返すメソッド、メソッドのオーバーロード、ジェネリクス
<<前のページ | 問題集Top |
次のページ>> |
JAVAの「真偽値を返すメソッド」とは
この章ではJAVAにおける「真偽値を返すメソッド」の意味や使い方を学習します。必要ない方はここをクリックして練習問題へ飛びましょう。
Javaではメソッドを使って特定の条件に基づいて処理を行うことが可能です。
その中でも真偽値を返すメソッドは、条件に合致するかどうかを確認し、true
またはfalse
のいずれかを返すメソッドのことを言います。
本記事では真偽値を返すメソッドの基本的な使い方と、活用例について解説します。
真偽値を返すメソッドとは?
真偽値を返すメソッドとは、条件に基づいた処理の結果としてboolean
型の値(true
かfalse
)を返すメソッドです。
このようなメソッドは条件に合致するかどうかを判定する場面で役立ちます。
例えば入力された文字列が空であるかどうかや、特定の値が配列に含まれているかどうかを確認する場合に真偽値を返すメソッドが利用されます。
使用例:真偽値を返すメソッドの実装
次に真偽値を返すメソッドの簡単な例として、ある数が偶数かどうかを判定する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は偶数です。
と表示されます。
このように真偽値を返すメソッドは条件判断を簡潔に表現できるため、コードの可読性や再利用性が向上します。
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
を返します。
これらのメソッドを活用することで、文字列やリスト内での特定の条件チェックを効率的に行えます。
まとめ
真偽値を返すメソッドは条件に基づく判断を行う際に非常に便利です。
条件に応じてtrue
やfalse
を返すことで複雑な条件分岐を簡潔に記述できるため、コードの可読性が向上します。
Javaの標準ライブラリにも多くの真偽値メソッドが含まれているため、必要に応じて使いこなしてみましょう。
練習問題3-3:割り切り判定プログラムを作成しよう
数値が特定の値で割り切れるかどうかを判定するプログラムを作成しましょう。
このプログラムでは10という固定の値に対して、ユーザーが入力した数値で割り切れるかを判定します。
割り切れる場合には「割り切れる: true」、割り切れない場合には「割り切れない: false」と表示されます。
また入力値が0以下または10を超える場合は「割り切れない」と判定されます。
この問題の要件
以下の要件に従ってコードを完成させてください。
- メソッド名:
isDividable
- 引数:
- 整数
a
(固定値として10を代入すること) - 整数
b
(ユーザーから入力する値)
- 整数
- 処理内容:
b
が0以下、または10より大きい場合はfalse
を返すこと。a
をb
で割った結果が余りなく割り切れる場合にtrue
を返すこと。main
メソッドでScanner
を使用し、ユーザーからb
の値を入力させること。isDividable
メソッドを呼び出して、結果を表示すること。
- 表示形式:
割り切れる: true
または割り切れない: false
と出力すること。
ただし、以下のような実行結果となるコードを書くこと。
*****↓↓正解コードの実行結果の例↓↓*****
割る数を入力してください (0 < b <= 10): 5 割り切れる: true
割る数を入力してください (0 < b <= 10): 3 割り切れない: false
この問題を解くヒント
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」と出力
以下のコードをコピーし、コメントに従ってコードを完成させて下さい。
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」と出力するコードを書いてください。 */ } }
以上がこの問題の穴埋めコードです。
このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。
解答例と解説
この問題の一つの正解例とそのコードの解説を以下に示します。
正解コードの例
例えば以下のようなプログラムが考えられます。
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"); } } }
正解コードの解説
今回のJavaコードでは10をある数で割り切れるかを判定するプログラムを作成しています。
このコードはユーザーから指定された数値で割り切れるかどうかを確認し、その結果を表示します。
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;
:a
をb
で割った余りが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
メソッドを呼び出し、a
とb
が割り切れる場合はtrue
を返します。System.out.println("割り切れる: true");
:true
が返された場合、「割り切れる: true」と表示されます。System.out.println("割り切れない: false");
:false
が返された場合、「割り切れない: false」と表示されます。
まとめ
このプログラムではユーザーからの入力を使って割り切り判定を行う方法を学びました。
特に「真偽値を返すメソッド」の使い方に注目し、割り切り判定の条件分岐の考え方を身につけることができます。
メソッドを使うことで同じ処理を再利用しやすくなります。Javaプログラムの基礎を理解し、ぜひ他のケースでもこの考え方を試してみてください。
<<前のページ |
問題集Top |
次のページ>> |
この記事への質問・コメント
この記事を作成するにあたりAIを活用しています。
問題ないことは確認していますが、もし間違いや表現の違和感などありましたら、ご指摘頂けると大変助かります。