なぜ次は無限ループを生成するのですか?Java || while文with無限ループ
int sum = 0;
int k = 1;
while (sum < 12 || k < 4)
sum += k;
System.out.println(sum);
Iは、そうでなければK < 4意志、合計が12に達すると、kが1
なぜ次は無限ループを生成するのですか?Java || while文with無限ループ
int sum = 0;
int k = 1;
while (sum < 12 || k < 4)
sum += k;
System.out.println(sum);
Iは、そうでなければK < 4意志、合計が12に達すると、kが1
のまま(和 & K < 4)中に使用すべき、出力は12であろうと仮定なります常に真となり、ループは継続して実行されます。
ORを使用すると、これらの条件のいずれかが当てはまるとループが続行されます。条件は、ループが停止しないように継続することです。ループは
しかし、それはORステートメントなので、sum <12 OR k <4であるかどうかをチェックしませんか? –
ORを使用する場合、複数選択問題 –
@Kyle McAllisterでした。これらの条件の1つが当てはまると、ループは続行されます。条件は、ループが停止しないように継続することです。 false || true == true –
kがインクリメントされない継続した場合
false || true == true
true || true == true
false || false == false
false && true == false
true && true == true
false && false == false
得られた真または偽を判定する。
int sum = 0;
int k = 1;
while (sum < 12 || k < 4) {
sum += k;
k++;
}
System.out.println(sum);
これはなぜ必要なのでしょうか、ループ<12 OR k <4?プラスこれは異なる合計をもたらすだろうか? –
@KyleMcループを続ける条件のいくつかが満たされていれば続ける – amchacon
k
の値は、すべての反復で一定です。
ループ条件は、sum<12
またはk<4
です。反復の間にkの値を変更しないので、常に4未満になり、ループは継続します。
コードk
では、増分しないため、条件はtrueのままです。だからあなたのループは無限です。
int sum = 0; // sum is 0
int k = 1; // k is 1
while (sum < 12 || k < 4) {
sum += k; // sum is incremented by 1 each time it loops
}
System.out.println(sum);
ここで、kの値はまだ4未満です。したがって、無限ループします。
編集:私はそれをもう少し明確に
作ってるんださてここであなたのwhile
ループが
while (sum < 12 || k < 4)
あるそれはどちらかの意味sum < 12
が真である必要がありますかk < 4
が真である必要があり、へwhile
ループをループします。
ここでは、あなたのk < 4
の状態はまだ真です。だからこそ、それは無限ループを続けています。
それは多項選択問題(私のコードではありません)でした。合計金額が12になると、それは文章で十分ではないでしょうか? –
いいえ、ループを終了するには両方とも真でなければなりません。 –
ありがとうございました。私は全く間違っていると思っていた私はそれが1つまたは他のものが満たされたときに壊れると思っていました。それは実際にはどちらか一方が真実である間、それは壊れずに続きます。 –
||ステートメント。 "|| & &"についてのドキュメントをすべて読む=> OR。 ステートメントの左側が真で、右側がfalse = true(||を使用している場合)
インデントの問題.... – Rishi
「k」はまだ4未満です。 – resueman
インクリメントkの値 – Rishi