[ 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) + " です。");
        break;
      } 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 number;
  private String name;
  
  public int getNo() {
    return number;
  }
  
  public void setNo(int hp) {
    this.number = 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 285 times, 1 visits today)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

エヌ・キャリア・アカデミーは「21世紀のこれからの激変する社会を生き抜き、第一線で活躍することのできる人材を世に送り出していく」ことを教育理念にかかげ、IT系の職業訓練を実施している職業訓練校です。

この記事は、エヌ・キャリア・アカデミーのスタッフが執筆しています。

企業ホームページ:https://n-career.jp/

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

目次