Generation

generate functionMon, 17 Jul 2023

騎士を表す Knight_o クラス、騎士共通の食料を表す apple_o クラス、騎士インスタンスを生成する KnightManager_o クラスが以下に示されている。騎士が食料を食べると、食料数が減らされるプロ グラムである。騎士が食料を食べるごとに、騎士と食料の比率を表す値「食料の深刻度」(高いほど、 食料の問題が深刻になる、計算方法:騎士数/食料数)が計算される。 ⚫ KnightManager_o クラスをそのまま実行すれば例外が発生し、プログラムは途中終了する。どのよ うな例外が発生するのかを実行して確認し、try-catch 文で実行結果になるように例外処理を追加せよ。例外処理を追加したあとの実行結果は、最後に示されている。 public class KnightManager_o { public static void main(String[] args) { Knight_o[] knights = new Knight_o[5]; Apple_o apple = new Apple_o(4); // 騎士インスタンス生成 for (int i = 0; i < 5; i++) { knights[i] = new Knight_o(); } // 各騎士インスタンスが食料を食べる for (int i = 0; i < Knight_o.getKnightNum(); i++) { knights[i].eat(apple); System.out.print(i+1+"人目,残り="+apple.getAppleNum()+"個,"); System.out.println("人数/食料数="+Knight_o.getKnightNum() / apple.getAppleNum()); } } } 1人目,残り=3個,人数/食料数=1 2人目,残り=2個,人数/食料数=2 3人目,残り=1個,人数/食料数=5 4人目,残り=0個,Exception in thread "main" java.lang.ArithmeticException: / by zero

public class Knight_o { private static int knigthNum = 0; public Knight_o() { knigthNum++; } public static int getKnightNum() { return knigthNum; } public void eat(Apple_o apple) { apple.decrementApple(); } } public class Apple_o { private int appleNum; public Apple_o(int num) { appleNum = num; } public void decrementApple() { appleNum--; } public int getAppleNum() { return appleNum; } }

Want to kickstart your project?Use the new AI Studio to create your code