以下のコード([SumScore.java])にさらに下記のような2つの機能を追加したいです。
1,得点を入力しないと警告メッセージを出す。
2,得点は 0~100 (小数点を含まない)点の範囲以外で入力すると警告メッセージを出す。
以下に途中まで作成したコードを載せておきますので、お手数ですがご教授いただけると幸いです。
得点入力で、未入力の場合と、0100 (小数点を含まない)点の範囲以外で入力しても動作が終了してしまいます。100点の範囲で入力してください。");
該当箇所は以下になります。
また、Exceptionを使った処理の方がいいのであれば、そちらでご回答いただけると嬉しいです。
if(inParam2.equals("")){
System.out.print("得点を入力してください。");
} else if(inParam2 >= 0 && 100 >= inParam2)
System.out.print("得得点は 0
要望が多くて申し訳ありませんが、宜しくお願いします。
java
1import java.util.HashMap; 2 3public class Person { 4 String name; 5 HashMap<String, Integer> recordMap; 6 7 public Person(String name) { 8 this.name = name; 9 } 10 11 public int calcSum() { 12 int kokugo = (recordMap.get("国語")).intValue(); 13 int sansu = (recordMap.get("算数")).intValue(); 14 int rika = (recordMap.get("理科")).intValue(); 15 int syakai = (recordMap.get("社会")).intValue(); 16 return kokugo + sansu + rika + syakai; 17 } 18}
java
1import java.io.BufferedReader; 2import java.io.InputStreamReader; 3import java.util.HashMap; 4 5public class SumScore { 6 7 public SumScore() { 8 } 9 10 11 public static void main(String[] args) { 12 13 try (InputStreamReader inStream = new InputStreamReader(System.in); 14 BufferedReader bufReader = new BufferedReader(inStream)) { 15 16 int kazu = 0; 17 System.out.print("何人分の成績を入力しますか(数字で入力): "); 18 try { 19 String inParam = bufReader.readLine(); 20 kazu = (int) Integer.parseInt(inParam); 21 if (kazu <= 0) { 22 System.out.println("人数は1以上にしてください。"); 23 System.exit(1); 24 } 25 } catch (NumberFormatException e) { 26 System.out.println("人数は整数で指定してください。"); 27 System.exit(1); 28 } 29 30 Person person[] = new Person[kazu]; 31 for (int i = 0; i < kazu; i++) { 32 System.out.print((i + 1) + "人目の名前: "); 33 34 String inName = bufReader.readLine(); 35 36 if(inName.equals("")){ 37 System.out.print("名前を入力してください。"); 38 } else { 39 40 person[i] = new Person(inName); 41 HashMap<String, Integer> recordMap = new HashMap<String, Integer>(4); 42 43 System.out.print("国語:"); 44 Integer inParam2 = Integer.valueOf(bufReader.readLine()); 45 46 if(inParam2.equals("")){ 47 System.out.print("得点を入力してください。"); 48 } else if(inParam2 >= 0 && 100 >= inParam2) 49 System.out.print("得得点は 0~100点の範囲で入力してください。"); 50 51 System.out.print("算数:"); 52 Integer inParam3 = Integer.valueOf(bufReader.readLine()); 53 System.out.print("理科:"); 54 Integer inParam4 = Integer.valueOf(bufReader.readLine()); 55 System.out.print("社会:"); 56 Integer inParam5 = Integer.valueOf(bufReader.readLine()); 57 recordMap.put("国語", inParam2); 58 recordMap.put("算数", inParam3); 59 recordMap.put("理科", inParam4); 60 recordMap.put("社会", inParam5); 61 // recordMap をPersonオブジェクトに代入する。 62 person[i].recordMap = recordMap; 63 64 } 65 System.out.println(); 66 System.out.println("====== 合 計 点 一 覧 ====="); 67 } 68 for (int i = 0; i < kazu; i++) { 69 int sum = person[i].calcSum(); 70 System.out.println("名前:" + person[i].name + ", 合計:" + sum + "点"); 71 } 72 73 } catch (Exception e) { 74 } 75 } 76}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。