teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

修正

2020/08/05 11:28

投稿

amiya
amiya

スコア1218

answer CHANGED
@@ -1,10 +1,10 @@
1
1
  最初の`8`を読み込むときに使っているのは、
2
2
  `sc.nextInt();`です、これは入力ストリームから、数字だけを読み取るメソッドです。
3
- その前の時点でのストリームの内容は、`8\n`であり、
3
+ その前の時点でのストリームの内容は、`"8\n"`であり、
4
- これが読み取られた結果、ストリームには`\n`が残ります。
4
+ これが読み取られた結果、ストリームには`"\n"`が残ります。
5
5
 
6
6
  その状態で、`sc.nextLine();`を使うと、これは改行までを読み取るメソッドなので、
7
- `\n`を読んで、改行の前の空文("")を返します。
7
+ `"\n"`を読んで、改行の前の空文(`""`)を返します。
8
8
  それが`println("")`により出力されて、改行だけになります。
9
9
 
10
10
  `sc.nextInt();`の後に、`sc.nextLine();`を一度、空打ちして余計な改行を読み捨ててください。

2

修正

2020/08/05 11:28

投稿

amiya
amiya

スコア1218

answer CHANGED
@@ -1,1 +1,10 @@
1
- すみません。読みました。
1
+ 最初の`8`を読み込むときに使ってるのは、
2
+ `sc.nextInt();`です、これは入力ストリームから、数字だけを読み取るメソッドです。
3
+ その前の時点でのストリームの内容は、`8\n`であり、
4
+ これが読み取られた結果、ストリームには`\n`が残ります。
5
+
6
+ その状態で、`sc.nextLine();`を使うと、これは改行までを読み取るメソッドなので、
7
+ `\n`を読んで、改行の前の空文("")を返します。
8
+ それが`println("")`により出力されて、改行だけになります。
9
+
10
+ `sc.nextInt();`の後に、`sc.nextLine();`を一度、空打ちして余計な改行を読み捨ててください。

1

訂正

2020/08/05 11:27

投稿

amiya
amiya

スコア1218

answer CHANGED
@@ -1,2 +1,1 @@
1
- `println(s)`は、`s`の内容に加えて、改行を出力するメソッドです。
2
- 改行をしたくない場合は、`print(s)`を使ってください
1
+ すみません。読み違いました。