[ Java練習問題 ] 練習問題 第9回 『メソッド ②』

目次

メソッド 確認問題

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

① 戻り値なし、引数は String 型一つのメソッド walk(String direction)を定義してください。
② walk(String direction)メソッドでは、direction+”に 1 歩進んだ!”と出力してください。
③ 定義した walk(String direction)を、引数”右”で main メソッドから呼び出してください。
④ 定義した walk(String direction)を、引数”左”で main メソッドから呼び出してください。

実行例 2

右に 1 歩進んだ!
左に 1 歩進んだ!

問 3

① 戻り値は 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 メソッドを定義してください。
② 12,34,56,78,90 の五つの要素を持つ配列の宣言と代入をしてください。
③ 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回では「クラス」から出題します。

(Visited 176 times, 1 visits today)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次