回答編集履歴
2
なんか疲れてて作文が変
answer
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
原因
|
2
2
|
---
|
3
|
-
二行目の入力は、一行目の値に関わらず常に一行に収まります。
|
3
|
+
二行目の入力(A B C)は、一行目の値(3)に関わらず常に一行に収まります。
|
4
4
|
ですので、ご提示のコードのようにnextLineを繰り返すのは不適切です。
|
5
5
|
> ```Java
|
6
6
|
for(int i=0;i<a;i++) {
|
@@ -10,9 +10,11 @@
|
|
10
10
|
}
|
11
11
|
> ```
|
12
12
|
|
13
|
+
複数行読んでしまってはいけないのです。
|
14
|
+
|
13
15
|
対策
|
14
16
|
---
|
15
|
-
一行読んで
|
17
|
+
一行読んで、それを空白区切りにすれば良いでしょう。
|
16
18
|
```Java
|
17
19
|
String line = sc.nextLine();
|
18
20
|
System.out.println(line);
|
@@ -22,8 +24,11 @@
|
|
22
24
|
}
|
23
25
|
```
|
24
26
|
|
27
|
+
ただし、これだけでは想定どおり動作しません。
|
25
|
-
|
28
|
+
直前にnextIntを呼んでいるため、改行コードがバッファに残ってしまっているのです。
|
29
|
+
|
26
|
-
解決策はいくつかあります。
|
30
|
+
解決策はいくつかあります。
|
31
|
+
次のようにScanner#skipを利用するのも一手でしょう。
|
27
32
|
```Java
|
28
33
|
int a = sc.nextInt();
|
29
34
|
sc.skip("\n");
|
1
成形
answer
CHANGED
@@ -23,7 +23,7 @@
|
|
23
23
|
```
|
24
24
|
|
25
25
|
また、直前にnextIntを呼んでいるため、改行コードが残っていることにも留意せねばなりません。
|
26
|
-
解決策はいくつかあります。例えば、次のよう
|
26
|
+
解決策はいくつかあります。例えば、次のような。
|
27
27
|
```Java
|
28
28
|
int a = sc.nextInt();
|
29
29
|
sc.skip("\n");
|