[ Java練習問題 ] 練習問題 第19回 『例外処理』

目次

例外処理

Java練習問題 第19回では「例外処理」についての問題を用意してあります。
「例外処理」の解説はこちら

問題 1 難易度 ★★★

① 下記のコードを、try~catch 文を用いて以下の実行例となるようなプログラムに変更してください。

public class Main_1501 {
  public static void main(String[] args) {
    while (true) {
      System.out.println("整数を入力してください。");
      String s = new java.util.Scanner(System.in).nextLine();
      int n = Integer.parseInt(s);
      System.out.println(n + "の二乗は、" + (n * n) + " です。");
    }
  }
}

実行例

整数を入力してください。
a
不正な入力です。もう一度、整数を入力してください。
2.5
不正な入力です。もう一度、整数を入力してください。
6
6 の二乗は、36 です。
整数を入力してください

問題 1 解答

正解は、、、
public class Main_1501 {
  public static void main(String[] args) {
    while (true) {
      System.out.println("整数を入力してください。");
      try {
        String s = new java.util.Scanner(System.in).nextLine();
        int n = Integer.parseInt(s);
        System.out.println(n + "の二乗は、" + (n * n) + " です。");
      } catch (NumberFormatException e) {
        System.out.print("不正な入力です。もう一度、");
      }
    }
  }
}

問題 2 難易度 ★★★

① Student クラスを以下のように定義して下さい。
Student クラスには、int 型のフィールド number と、String 型のフィールド name を定義し、
セッターメソッドとして、 setNumber, setName を用意してください。
setName では、引数が 2 文字以上かつ 16 文字以下であることを検査し、正しくない引数の場合は、
IllegalArgumentException を送出するようにしてください。
正しい引数の場合は、”名前を設定しました”と出力してください。

② main メソッド内で Student インスタンスを生成し、ユーザーが入力した文字列を name としてセットしてください。

実行例(1文字入力の場合)

生徒の氏名を入力してください。

Exception in thread “main” java.lang.IllegalArgumentException: 名前の長さは 2~16 文字です。
at lesson017_exception.Student.setName(Student.java:22)
at lesson017_exception.Main_1702.main(Main_1702.java:19)

実行例(4文字入力の場合)

生徒の氏名を入力してください。
山田太郎
名前を設定しました:山田太郎

問題 2 解答

正解は、、、
public class Main_1502 {
  public static void main(String[] args) {
    Student student = new Student();
    System.out.println("生徒の氏名を入力してください。");
    String name = new java.util.Scanner(System.in).nextLine();
    student.setName(name);
  }
}

class Student {
  private int no;
  private String name;
  public int getNo() {
    return no;
  }
  
  public void setNo(int hp) {
    this.no = hp;
  }
  
  public String getName() {
    return name;
  }
  
  public void setName(String name) {
    if (name.length() < 2 || name.length() > 16) {
      throw new IllegalArgumentException("名前の長さは 2~16 文字です。");
    }
    this.name = name;
    System.out.println("名前を設定しました:" + this.name);
  }
}

Java練習問題 第20回では「ArrayList」から出題します。

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

この記事を書いた人

コメント

コメントする

目次