すべて chapter16.kadai パッケージ内に作成してください
ソースコード(クラス名.java)をSドライブにアップロードして提出してください
S:\Java\課題提出\基礎\16章
以下のクラスは、実行時のユーザーの入力内容により、例外が起こる可能性があります。
package chapter16.kadai;
import java.util.Scanner;
class DivCalc {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("1つ目の数字: ");
int a = sc.nextInt();
System.out.print("2つ目の数字: ");
int b = sc.nextInt();
System.out.println
(a + "÷" + b + " = " + (a/b) + " あまり " + (a%b));
}
}
InputMismatchExceptionが発生したときは「整数を入力してください」
ArithmeticExceptionが発生したときは「2つ目の数字に0は指定できません」
とコンソールに表示するようにプログラムを変更してください。
また、例外が発生してもしなくても、最後に「処理が終了しました」とコンソールに表示してください。
以下は入力された日付を元に、曜日を表示するクラスですが、適切な例外処理が行われていないため、このままではコンパイルが通りません。
package chapter16.kadai;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
class DateCalc {
public static void main(String[] args) {
String[] youbi = {"日", "月", "火", "水", "木", "金", "土"};
SimpleDateFormat df = new SimpleDateFormat("yyyy/MM/dd");
Scanner sc = new Scanner(System.in);
System.out.println("日付をyyyy/MM/dd形式で入力してください");
String dateStr = sc.nextLine();
Date date = df.parse(dateStr);
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int youbiNum = cal.get(Calendar.DAY_OF_WEEK);
System.out.println
(dateStr + "は" + youbi[youbiNum - 1] + "曜日です");
}
}
適切な例外処理により、例外が発生した場合は「入力した日付の書式が不正です」とコンソールに表示してから処理を中断しましょう。
スタックトレースは表示させないようにしてください。
問題2 の DateCalcクラスをコピーし、DateCalc2クラスを作成します。
例外が発生したとき、処理を中断するのではなく、適切な書式で日付が入力されるまで入力処理を繰り返すように、改良しましょう。
実行結果例(緑字はコンソールからの入力値)
日付をyyyy/MM/dd形式で入力してください
20220520
入力した日付の書式が不正です
日付をyyyy/MM/dd形式で入力してください
2022-05-20
入力した日付の書式が不正です
日付をyyyy/MM/dd形式で入力してください
2022/05/20
2022/05/20は金曜日です