出力が4を出力する2.私は "y"が4である理由を理解していますが、なぜ "z"が2であるのか分かりません。 "z"の値を1増やすべきではありませんか?Java whileループ混乱出力
int x = 6;
int y = 1;
int z = 0;
while (2 * y <= x) {
y = y * 2;
z++;
}
System.out.println(y + " " + z);
出力が4を出力する2.私は "y"が4である理由を理解していますが、なぜ "z"が2であるのか分かりません。 "z"の値を1増やすべきではありませんか?Java whileループ混乱出力
int x = 6;
int y = 1;
int z = 0;
while (2 * y <= x) {
y = y * 2;
z++;
}
System.out.println(y + " " + z);
最初の反復yは1であるので、2*y <= x
が満足します。そして2*y
4とy= y*2
あるため満足2であり、zは再び1
2*y<=x
となるy = y*2
が8になるとz++
出力4と2
を得られた2
なる私は、プログラムにエラーが表示されません。ループは2回実行されます。
z
は、になると、0+1=1
になります。
2*Y
は条件を満たさない8
となり、最終的な出力はY
が4
とZ
が2
であることであるべきです。
Yは決して8になることはありません4 – Lokesh
Sry私は2 * yが8になることを意味します –
ご協力いただきありがとうございました。私が作った間違いは、条件から "y"の値を取ってステートメント上でそれを使用することでした。つまり、y = 1 * 2で始めるのではなく、 、私はy = 2 * 2の2番目の反復で始めます。 "z"の値が1で、ループがそこで終わったと思います。ループ内での印刷の提案をありがとうございました。
whileループは2回実行されます – Lokesh
'++'は一度もありません。 「z」は0で始まり、それは1 2回インクリメントされる。 – Oleg
「z」は何を期待しましたか? –