回答編集履歴
2
typo 修正
answer
CHANGED
@@ -49,7 +49,7 @@
|
|
49
49
|
try {
|
50
50
|
int ans = Integer.parseInt(br.readLine());
|
51
51
|
if (ans < 1 || ans > 3) {
|
52
|
-
|
52
|
+
errorStream.println("1 から 3 の範囲で入力してください");
|
53
53
|
} else {
|
54
54
|
return ans;
|
55
55
|
}
|
1
数値読み込みのエラーチェックのところが気になったので、修正しました。
answer
CHANGED
@@ -11,13 +11,13 @@
|
|
11
11
|
private String question;
|
12
12
|
private String candidates;
|
13
13
|
private int answer;
|
14
|
-
|
14
|
+
|
15
15
|
quiz(String q, String c, int a) {
|
16
16
|
question = q;
|
17
17
|
candidates = c;
|
18
18
|
answer = a;
|
19
19
|
}
|
20
|
-
|
20
|
+
|
21
21
|
public static quiz readNewQuiz(BufferedReader quizDataReader) throws IOException {
|
22
22
|
String q;
|
23
23
|
if ((q = quizDataReader.readLine()) == null) {
|
@@ -33,17 +33,32 @@
|
|
33
33
|
}
|
34
34
|
return new quiz(q, c, Integer.parseInt(a));
|
35
35
|
}
|
36
|
-
|
36
|
+
|
37
37
|
public void printQuestion(int count, PrintStream ps) {
|
38
38
|
ps.println("第" + count +"問 " + question);
|
39
39
|
ps.println(candidates);
|
40
40
|
ps.println("なお、数字のみ入力してください。(以後共通)例:3");
|
41
41
|
}
|
42
|
-
|
42
|
+
|
43
43
|
public boolean checkAnswer(int ans) {
|
44
44
|
return answer == ans;
|
45
45
|
}
|
46
|
+
|
46
|
-
|
47
|
+
public static int readNumber(BufferedReader br, PrintStream errorStream) throws IOException {
|
48
|
+
while (true) {
|
49
|
+
try {
|
50
|
+
int ans = Integer.parseInt(br.readLine());
|
51
|
+
if (ans < 1 || ans > 3) {
|
52
|
+
System.out.println("1 から 3 の範囲で入力してください");
|
53
|
+
} else {
|
54
|
+
return ans;
|
55
|
+
}
|
56
|
+
} catch (NumberFormatException e) {
|
57
|
+
errorStream.println("数値を入力してください");
|
58
|
+
}
|
59
|
+
}
|
60
|
+
}
|
61
|
+
|
47
62
|
public static void main (String[]args) throws IOException {
|
48
63
|
BufferedReader quizDataReader = new BufferedReader(new FileReader("quizdata.txt"));
|
49
64
|
InputStreamReader is = new InputStreamReader(System.in);
|
@@ -53,23 +68,15 @@
|
|
53
68
|
quiz q = readNewQuiz(quizDataReader);
|
54
69
|
if (q == null) break;
|
55
70
|
q.printQuestion(count, System.out);
|
56
|
-
int ans = 0;
|
57
|
-
try {
|
58
|
-
ans = Integer.parseInt(br.readLine());
|
59
|
-
|
71
|
+
int ans = readNumber(br, System.out);
|
60
|
-
}
|
61
|
-
if (ans < 1 || ans > 3) {
|
62
|
-
System.out.println("1 から 3 の数値を入力してください");
|
63
|
-
break;
|
64
|
-
|
72
|
+
if (q.checkAnswer(ans)) {
|
65
73
|
System.out.println("正解!第" + ++count +"問に進みます。");
|
66
74
|
} else {
|
67
75
|
System.out.println("不正解です。残念。");
|
68
76
|
break;
|
69
77
|
}
|
70
78
|
}
|
71
|
-
}
|
79
|
+
}
|
72
|
-
|
73
80
|
}
|
74
81
|
```
|
75
82
|
|