0

ここで何が起こるか、つまり、print を使用すると、行が停止する場所で印刷されないのはなぜですか?

for(int i = 0; i <=2; i++){
System.out.println(i)
System.out.print("s");
}

次のように 2 の後に s を出力しないのはなぜですか。

0

1

2秒

私が学んだことから、誰かがそれが永遠にバッファリングすると言いましたか? どういう意味ですか?コンピューターは 2 の横にある文字 s を印刷することを認識します。これは、そこで停止したためです。

4

7 に答える 7

2

ループの最初のステートメントの後にセミコロンがありません。

for (int i = 0; i <=2; i++) {
    System.out.println(i);
    System.out.print("s");
}

上記のコードはこれを出力します:

0
秒1
秒2

ただし、これを行う場合:

for (int i = 0; i <=2; i++) {
    System.out.print(i);
    System.out.println("s");
}

以下を出力します。

0秒
1
秒 2秒

最後に余分な改行があります。

于 2013-04-09T08:06:51.377 に答える
1

ループ内の反復ごとに、コードは整数を出力し、(printlnが使用されているため) 改行を追加し、s を出力します。したがって、次のような出力が得られます

0

s1

s2

s

于 2013-04-09T07:59:58.997 に答える
0

実際に行が停止する場所をprint出力します!. sここでの問題は、println既に新しい行を最初に配置printしてから、その場所から開始することです。

于 2013-04-09T08:03:57.500 に答える
0

両方のステートメントは同じループ内にあるため、次々に実行されます。

そう:

System.out.println(i);   

i(その変数が何であれ)を与え、次に新しい行を与えます。

System.out.print("s");   

「s」を出力します。改行なし。

あなたの出力は

0
s1
s2
s

また、ループの最後の反復でのみ出力が必要なため、「if」が必要です。

    for (int i = 0; i <= 2; i++) {
        System.out.print(i);
        if (i == 2) {
        System.out.print("s");
        } else {
        System.out.println("");
        }
    }

これにより、次のことが得られます。

0
1
2s
于 2013-04-09T08:04:47.367 に答える
0

これは、println がステートメントの先頭ではなく、ステートメントの最後に改行文字 (\n) を残すためです。

于 2013-04-09T08:01:10.183 に答える
0

コードで何が起こるか:

0
s1 
s2
s

なぜそれが起こるのか:あなたが使用する場合

print("s");

プログラムは「s」を出力し、それだけです。使用する場合:

println("s");

各「s」の後に新しい行が表示されますが、これがあなたが求めているものだと思います。

于 2013-04-09T08:00:19.693 に答える
0

実際の答えは、前の println がすでにそれを次の行に置いているということです。System.out.print("s") を使用すると、実際には永遠に水平方向に進むため、印刷されません。

于 2013-04-09T08:22:04.130 に答える