JAVAの初心者向け問題2-1:メソッドの基本を確認しよう
この問題を解くために必要な知識:
【レベル1の知識】
コメントの書き方、変数と定数、基本データ型とプリミティブ型、四則演算と論理演算、入力と出力(Scannerクラス)、配列、分岐処理(if、if~else、switch)、繰り返し処理(for、while、do~while)
【レベル2の知識】
メソッドの定義と呼び出し、メソッドの戻り値、メソッドのオーバーロード、例外処理(try-catch文、throws、throw)、クラスの定義と使用、インスタンス、コンストラクタ
<<前の問題 | 問題集Top |
次の問題>> |
JAVAの文法「メソッド」とは
ここではメソッドの意味や使い方を復習します。必要ない方はここをクリックして練習問題へ飛びましょう。
Javaプログラミングを学ぶ上で、メソッドの理解は非常に重要です。
メソッドは、プログラムの中で特定の処理をまとめて、簡単に再利用できるようにするための仕組みです。
この記事では、メソッドの基本について解説します。
メソッドとは?
メソッドは、一連の処理をひとつにまとめたものです。
例えば、「ある計算を行う処理」や「特定のメッセージを表示する処理」を1つのメソッドにまとめておけば、何度も同じ処理を繰り返し書かずに済みます。
プログラムを簡潔で理解しやすくするために、メソッドはとても役立ちます。
メソッドの定義
メソッドは、次のような形で定義します。
public static void メソッド名() { // メソッドの中で実行される処理 }
このように、メソッドには「名前」があり、その中に処理が記述されています。
メソッドの例
例えば、「Hello, World!」と表示するメソッドを作成する場合、次のように書くことができます。
public static void sayHello() { System.out.println("Hello, World!"); }
public static void
は、メソッドを定義するためのお決まりのキーワードです。今は深く考えず、「こう書くものだ」と覚えておきましょう。sayHello
はメソッドの名前です。自由に名前を付けられますが、何をするメソッドか分かりやすい名前にするのが良い習慣です。{}
の中には、実際に行う処理を書きます。この場合、System.out.println("Hello, World!");
という、メッセージを表示する処理が書かれています。
メソッドを呼び出す
メソッドは定義しただけでは実行されません。メソッドを実行するには、呼び出す必要があります。次のように、メソッド名を書いて呼び出します。
public class Main { public static void main(String[] args) { // メソッドを呼び出す sayHello(); } public static void sayHello() { System.out.println("Hello, World!"); } }
この例では、main
メソッドの中から、sayHello()
を呼び出しています。sayHello()
と書くことで、先ほど定義したメソッドが実行され、”Hello, World!” が表示されます。
引数を使ったメソッド
メソッドには、引数を渡すことができます。
引数とは、メソッドに渡される追加の情報です。例えば、特定の名前を表示するメソッドを作る場合、引数を使うことでメソッドをより汎用的にできます。
public static void greet(String name) { System.out.println("Hello, " + name + "!"); }
このgreet
メソッドは、名前を引数として受け取り、その名前を使って挨拶を表示します。次のように呼び出します。
public class Main { public static void main(String[] args) { greet("Alice"); greet("Bob"); } public static void greet(String name) { System.out.println("Hello, " + name + "!"); } }
このプログラムを実行すると、次のように表示されます。
Hello, Alice! Hello, Bob!
メソッドを使うメリット
メソッドを使うことで、以下のようなメリットがあります。
- コードの再利用
一度定義したメソッドは何度でも呼び出せるので、同じ処理を繰り返し書く必要がなくなります。 - コードの見通しが良くなる
複雑な処理をメソッドに分割することで、コード全体が読みやすくなります。 - メンテナンスがしやすい
メソッドにまとめておけば、後から修正や改善が必要になったときに、修正箇所を簡単に特定しやすくなります。
まとめ
メソッドは、プログラムを整理し、再利用可能にするための重要な仕組みです。メソッドの基本を理解すれば、より複雑なプログラムもスムーズに書けるようになります。
今回紹介した内容はメソッドの最も基本的な部分なので、まずは自分でメソッドを定義して、呼び出してみましょう。
JAVA練習問題2-1-1_メソッドの定義と呼び出し
ユーザー数値を入力し、その数値が偶数か奇数かを判定するメソッド isEven
を作成してください。
このメソッドは、数値が偶数ならば「Even」、奇数ならば「Odd」を出力します。メソッドの戻り値は考慮しなくてよいです。
この問題の要件
以下の要件に従ってプログラムを作成してください。
- ユーザーから整数を入力するために
Scanner
クラスを使用すること。 - 入力された整数が偶数か奇数かを判定するメソッド
isEven
を定義すること。 - 偶数の場合は “Even”、奇数の場合は “Odd” と表示すること。
- メソッドの戻り値は使用しないこと。
ただし、以下のような実行結果となること。
----- ↓出力される結果の例↓ -----
Enter a number: 5 Odd
----- ↑出力される結果の例↑ -----
この問題を解くヒント
1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。
正解のコードは上から順に以下のような構成となっています。
1.import文
1-1. Scannerクラスのインポート
2.Mainクラスの定義
2-1. mainメソッド
2-1-1. Scannerオブジェクトの作成
2-1-2. ユーザーに数値入力を促すメッセージを表示
2-1-3. ユーザーが入力した数値を読み取る
2-1-4. isEvenメソッドを呼び出す
3.isEvenメソッドの定義
3-1. 引数として整数を受け取る
3-2. 偶数か奇数かを判定
3-2-1. 偶数の場合の処理
3-2-2. 奇数の場合の処理
以下のコードをコピーし、コメントに従ってコードを完成させて下さい。
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // Scannerオブジェクトを作成 System.out.print("Enter a number: "); // ユーザーに数値入力を促すメッセージを表示 int number = scanner.nextInt(); // ***ここにユーザーが入力した数値を読み取るコードを書いてください*** isEven(number); // ***ここにisEvenメソッドを呼び出すコードを書いてください*** } // 偶数か奇数かを判定するメソッド public static void isEven(int number) { // numberが偶数かどうかをチェック if (number % 2 == 0) { System.out.println("Even"); // 偶数の場合の出力 } else { System.out.println("Odd"); // 奇数の場合の出力 } } }
このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。
JAVA練習問題2-1-1の解答例
この問題の一つの正解例とそのコードの解説を以下に示します。
正解コードの例
例えば以下のようなプログラムが考えられます。
********************
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // Scannerオブジェクトを作成 System.out.print("Enter a number: "); // ユーザーに数値入力を促すメッセージを表示 int number = scanner.nextInt(); // ユーザーが入力した数値を読み取る isEven(number); // isEvenメソッドを呼び出す } // 偶数か奇数かを判定するメソッド public static void isEven(int number) { // numberが偶数かどうかをチェック if (number % 2 == 0) { System.out.println("Even"); // 偶数の場合の出力 } else { System.out.println("Odd"); // 奇数の場合の出力 } } }
********************
コードの解説
Scannerクラスのインポート
import java.util.Scanner;
この行では、Scanner
クラスをインポートしています。Scanner
は、ユーザーからの入力を読み取るために使います。
java.util
パッケージに含まれており、インポートすることで、プログラム内でこのクラスを使用できるようになります。
mainメソッドの定義
public static void main(String[] args) {
main
メソッドは、Javaプログラムのエントリーポイントです。すべてのJavaプログラムは、このmain
メソッドから実行が開始されます。
public
は、このメソッドが他のクラスからもアクセス可能であることを示し、static
はインスタンス化せずに呼び出せることを意味します。
void
は、このメソッドが値を返さないことを示しています。
Scannerオブジェクトの作成と入力促し
Scanner scanner = new Scanner(System.in); System.out.print("Enter a number: ");
Scanner scanner = new Scanner(System.in);
では、scanner
という名前のScanner
オブジェクトを作成しています。System.in
は、キーボードからの入力を受け取るための標準入力ストリームを示します。
次に、System.out.print("Enter a number: ");
で、ユーザーに数値を入力するよう促すメッセージを表示しています。
ユーザー入力の取得
int number = scanner.nextInt();
この行では、ユーザーが入力した数値を取得し、number
という整数型変数に格納しています。nextInt()
は、入力されたデータを整数型として読み取るメソッドです。
isEvenメソッドの呼び出し
isEven(number);
isEven
という名前のメソッドを呼び出しています。このメソッドには、先ほど取得したnumber
が引数として渡されます。
メソッドの呼び出しによって、プログラムの流れはisEven
メソッドに移動します。
isEvenメソッドの定義
public static void isEven(int number) { if (number % 2 == 0) { System.out.println("Even"); } else { System.out.println("Odd"); } }
この部分は、isEven
メソッドの定義です。このメソッドは、number
が偶数か奇数かを判定します。メソッドの定義には以下の要素があります:
public
: 他のクラスからアクセスできるメソッドであることを示します。static
: このメソッドがクラスそのものに属し、インスタンス化しなくても呼び出せることを意味します。void
: このメソッドが値を返さないことを示します。int number
: メソッドが呼び出された際に、整数型の引数を1つ受け取ります。
メソッド内のif
文では、number
が偶数かどうかを%
演算子を使って確認しています。
%
は剰余演算子で、number
を2で割ったときの余りが0なら偶数、そうでなければ奇数であることを示しています。
まとめ
このコードは、ユーザーに数値を入力させ、その数値が偶数か奇数かを判定するシンプルなプログラムです。
重要な部分は、isEven
メソッドの定義と呼び出しです。このメソッドは、引数として受け取った数値を元に、条件分岐を使って偶数か奇数かを出力します。
JAVA練習問題2-1-2_繰り返し処理とメソッド
1から10までの数値を表示するメソッド printNumbers
を作成し、そのメソッドを呼び出してください。
このメソッドは1から10までの数値を一行ずつ出力します。
この問題の要件
以下の要件に従ってプログラムを完成させてください。
printNumbers
というメソッドを定義し、このメソッド内で1から10までの数値を順に表示すること。main
メソッドからprintNumbers
メソッドを呼び出すこと。- 繰り返し処理には
for
ループを使用すること。
ただし、以下のような実行結果となること。
----- ↓出力される結果の例↓ -----
1 2 3 4 5 6 7 8 9 10
----- ↑出力される結果の例↑ -----
この問題を解くヒント
1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。
正解のコードは上から順に以下のような構成となっています。
1.Mainクラスの定義
2-1. mainメソッド
2-1-1. printNumbersメソッドを呼び出す
2.printNumbersメソッドの定義
2-1. 1から10までの数値を表示
2-1-1. forループの開始
2-1-2. 数値を出力
以下のコードをコピーし、コメントに従ってコードを完成させて下さい。
public class Main { public static void main(String[] args) { ***ここでprintNumbersメソッドを呼び出してください*** } // 1から10までの数値を表示するメソッド public static void printNumbers() { // 1から10までの数値を繰り返し表示 ***ここで1から10までの数値を表示するためのforループを作成してください*** ***ここで数値を出力してください*** } }
このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。
JAVA練習問題2-1-2の解答例
この問題の一つの正解例とそのコードの解説を以下に示します。
正解コードの例
例えば以下のようなプログラムが考えられます。
********************
public class Main { public static void main(String[] args) { printNumbers(); // printNumbersメソッドを呼び出す } // 1から10までの数値を表示するメソッド public static void printNumbers() { // 1から10までの数値を繰り返し表示 for (int i = 1; i <= 10; i++) { System.out.println(i); // 数値を出力 } } }
********************
コードの解説
mainメソッドの定義
public static void main(String[] args) { printNumbers(); // printNumbersメソッドを呼び出す }
main
メソッドは、Javaプログラムのエントリーポイントであり、プログラムの実行がここから開始されます。
public
はこのメソッドが他のクラスからもアクセス可能であることを示し、static
はクラスから直接呼び出せることを意味します。void
はこのメソッドが値を返さないことを示します。
ここでは、printNumbers()
メソッドを呼び出しています。printNumbers
メソッドは後で定義されており、main
メソッド内で実行されることになります。
printNumbersメソッドの定義
public static void printNumbers() { for (int i = 1; i <= 10; i++) { System.out.println(i); // 数値を出力 } }
printNumbers
メソッドは、1
から10
までの数値を順に表示する役割を持つメソッドです。このメソッドもpublic
とstatic
が付いており、他のクラスからアクセス可能で、クラスから直接呼び出せます。
このメソッド内で使われているのは、for
ループです。ループの中では変数i
を使って、1から10までの数値を1つずつ増やしていきます。それぞれの値がSystem.out.println(i);
によって表示されます。
for
ループの構造:int i = 1;
: ループのカウンタ変数i
を1に初期化します。i <= 10;
: ループが続く条件として、i
が10以下であることを確認します。i++
: ループごとにi
を1ずつ増やします。
このループはi
が1
から10
までの間、繰り返し実行され、それぞれのi
の値が画面に出力されます。
<<前の問題 |
問題集Top |
次の問題>> |
この問題への質問・コメント
この問題を作成するにあたりAIを活用しています。
問題ないことは確認していますが、もし間違いや表現の違和感などありましたら、ご指摘頂けると大変助かります。