回答編集履歴

1

追記内容に関する追記

2018/08/08 03:06

投稿

milkteas
milkteas

スコア79

test CHANGED
@@ -5,3 +5,63 @@
5
5
  elseでメッセージ表示された後に続く処理がないので終わります。
6
6
 
7
7
  whileなどでループさせて文字読み取り処理部分に戻ればいけるはずです。
8
+
9
+
10
+
11
+ 追記:
12
+
13
+ 記載されている内容だとループの囲いがその部分だけなので結局1~3以外の場合に終わってしまいます。
14
+
15
+ ループ処理で全体を囲ってあげて、正解の場合には抜ける処理にしてあげるようにする等しましょう。
16
+
17
+ 書き方は色々あると思いますが、提示されたコードを元に修正すると下記な感じです。
18
+
19
+
20
+
21
+ ```Java
22
+
23
+ public static void main(String[] args) {
24
+
25
+ System.out.println("「上上下下左右左右BA」でお馴染みの名前は○○コマンド?");
26
+
27
+ System.out.println("1:コナミ 2: ナムコ 3: セガ");
28
+
29
+ System.out.print("正解の番号を入力してください>");
30
+
31
+
32
+
33
+ // ループ条件が常に真
34
+
35
+ while (true) {
36
+
37
+ int ans = new java.util.Scanner(System.in).nextInt();
38
+
39
+
40
+
41
+ if (ans == 1) {
42
+
43
+ System.out.println("正解です!");
44
+
45
+ System.out.println("1986年に発売されたFCソフト「グラディウス」が元祖ネタです。");
46
+
47
+ break;
48
+
49
+ } else if (ans == 2 || ans == 3) {
50
+
51
+ System.out.println("不正解です…");
52
+
53
+ break;
54
+
55
+ } else {
56
+
57
+ // メッセージを表示して再ループ
58
+
59
+ System.out.println("1~3の番号を入力してください。");
60
+
61
+ }
62
+
63
+ }
64
+
65
+ }
66
+
67
+ ```