メソッド 確認問題
Java練習問題 第9回では「メソッド」についての問題を用意してあります。
「メソッド」の解説はこちら
問題 4 難易度 ★★
以下の手順に従ってプログラムを作成してください。
① int 型の引数をひとつ受け取り、合否判定結果を boolean 型で返すメソッドを、judge メソッドという名前で定義してください。
② judge メソッドでは引数が 80 以上なら「true」、それ以外は「false」を返してください。
③ キーボード入力された点数を judge メソッドで合否判定し、結果を出力してください。
実行例 1
点数を整数で入力してください
79
79 点は不合格です
実行例 2
点数を整数で入力してください
80
80 点は合格です
問題 4 解答
正解は、、、
public class Main_0504 {
public static void main(String[] args) {
System.out.println("点数を整数で入力してください");
int score = new java.util.Scanner(System.in).nextInt();
boolean isPass = judge(score);
String msg = "";
if (isPass) {
msg = "合格";
} else {
msg = "不合格";
}
System.out.println(score + "点は" + msg + "です");
}
static boolean judge(int score) {
return score >= 80;
}
}
メソッドのオーバーロード
問題 5 難易度 ★★★
問 1
以下の手順に従ってプログラムを作成してください。
① 引数なし、戻り値なしのメソッド walk()を定義してください。
② walk()メソッドでは、”正面に 1 歩進んだ!”と出力してください。
③ 定義した walk()を、main メソッドから呼び出してください。
実行例 1
正面に 1 歩進んだ!
問 2
問1で作成したプログラムに以下の①~④のプログラムを追加してください。
① 戻り値なし、引数は String 型一つのメソッド walk(String direction)を定義してください。
② walk(String direction)メソッドでは、direction+”に 1 歩進んだ!”と出力してください。
③ 定義した walk(String direction)を、引数”右”で main メソッドから呼び出してください。
④ 定義した walk(String direction)を、引数”左”で main メソッドから呼び出してください。
実行例 2
右に 1 歩進んだ!
左に 1 歩進んだ!
問 3
問2で作成したプログラムに以下の①~④のプログラムを追加してください。
① 戻り値は int 型、引数は String 型と int 型のメソッド walk(String direction, int num) を定義してください。 walk(String direction, int num) メソッドでは、direction+”に”+num+”歩進んだ!”と出力してください。 walk(String direction, int num) メソッドでは、引数 num を 10 で割った数値を、消費体力としてリターンしてください。
② 定義した walk(String direction, int num)を、引数(“右”,50)で main メソッドから呼び出し、メソッドの戻り値を使って、消費した体力を出力してください。
③ 定義した walk(String direction, int num)を、引数(“左”,100)で main メソッドから呼び出して、メソッドの戻り値を使って、消費した体力を出力してください。
実行例 3
右に 50 歩進んだ!
体力を 5 消費した!
左に 100 歩進んだ!
体力を 10 消費した!
問題 5 解答
正解は、、、
public class Main_0505 {
public static void main(String[] args) {
// 解答例
//問題_1
walk();
//問題_2
walk("右");
walk("左");
//問題_3
int n1 = walk("右", 50);
System.out.println("体力を" + n1 + "消費した!\n");
int n2 = walk("左", 100);
System.out.println("体力を" + n2 + "消費した!\n");
}
// 解答例
//問題_1
public static void walk() {
System.out.println("正面に 1 歩進んだ!");
}
//問題_2
public static void walk(String direction) {
System.out.println(direction + "に 1 歩進んだ!");
}
//問題_3
public static int walk(String direction, int num) {
System.out.println(direction + "に" + num + "歩進んだ!");
int damage = num / 10;
return damage;
}
}
問題 6 難易度 ★★★
以下のコードが適切に動作するように、selectMin メソッド、selectMax メソッド、reverseArray メソッドを定義してください。
public class Main_0506 {
public static void main(String[] args) {
int[] numAry = { 58, 48, 2, 67, 9, 18, 7 };
int min = selectMin(numAry);
System.out.println("「numAry」の要素の最小値は" + min + "です。");
int[] numAry2 = { -58, -48, -2, -67, -9, -18, -7 };
int max = selectMax(numAry2);
System.out.println("「numAry2」の要素の最大値は" + max + "です。");
int[] numAry3 = reverseArray(numAry);
System.out.print("「numAry」の要素を逆順にすると、");
for (int i = 0; i < numAry3.length; i++) {
System.out.print(numAry3[i] + " ");
}
System.out.print("です。");
}
// 解答をここに記述してください。
}
実行例
「numAry」の要素の最小値は 2 です。
「numAry2」の要素の最大値は-2 です。
「numAry」の要素を逆順にすると、7 18 9 67 2 48 58 です。
問題 6 解答
正解は、、、
public class Main_0506 {
public static void main(String[] args) {
int[] numAry = { 58, 48, 2, 67, 9, 18, 7 };
int min = selectMin(numAry);
System.out.println("「numAry」の要素の最小値は" + min + "です。");
int[] numAry2 = { -58, -48, -2, -67, -9, -18, -7 };
int max = selectMax(numAry2);
System.out.println("「numAry2」の要素の最大値は" + max + "です。");
int[] numAry3 = reverseArray(numAry);
System.out.print("「numAry」の要素を逆順にすると、");
for (int i = 0; i < numAry3.length; i++) {
System.out.print(numAry3[i] + " ");
}
System.out.print("です。");
}
public static int selectMax(int[] nums) {
int max = nums[0];
for (int i = 1; i < nums.length; i++) {
max = Math.max(max, nums[i]);
}
return max;
}
public static int selectMin(int[] nums) {
int min = nums[0];
for (int i = 1; i < nums.length; i++) {
if (nums[i] < min) {
min = nums[i];
}
}
return min;
}
public static int[] reverseArray(int[] nums) {
int[] ary = new int[nums.length];
for (int i = 0; i < ary.length; i++) {
ary[nums.length - 1 - i] = nums[i];
}
return ary;
}
}
問題 7 難易度 ★★★
以下の①~③の手順に従ってプログラムを作成してください。
① int 型の配列を引数として受け取り、各要素の合計を返す calcTotal メソッドを定義してください。
② int型の配列を宣言し、12,34,56,78,90 の5つの要素を代入をしてください。
③ calcTotal メソッドを使って配列要素の合計値を出力してください。
実行例
合計は 270
問題 7 解答
正解は、、、
public class Main_0507 {
public static void main(String[] args) {
int[] a = { 12, 34, 56, 78, 90 };
int sum = calcTotal(a);
System.out.println("合計は" + sum);
}
static int calcTotal(int[] ary) {
int sum = 0;
for (int e : ary) {
sum += e;
}
return sum;
}
}
Java練習問題 第10回では「クラス」から出題します。
コメント