私は2番目のループに入りますが、i == 1ではありませんか?
これに対する答えはいいえです。
forループの条件は、基本的にブール値です。あなたのforループネストされたあなたは
for(int j=2; j < i ; j++)
を持っているこれは、このforループを実行するためには、jは< iをしなければならないことを意味します。
この行にブレークポイントを置き、デバッガでステップ実行すると、これははるかに明らかになります。
だから、i==1
とすると、j<i
がfalse
なので、2番目のfor-loopは実行できません。あなたはi=1
を持っています
だから、あなたのコードの非常に先頭から、あなたは最初から実行
for(int i=1; i < 100; i++){
boolean isPrime = true;
//check to see if the number is prime
for(int j=2; j < i ; j++){
if(i % j == 0){
isPrime = false;
}
}
// print the number
if(isPrime)
System.out.print(i + " ");
}
持っています。 isPrime
はtrue
に等しく設定され、2番目のfor-loopのパラメータが満たされているかどうかがチェックされます。
for(int j=2; j < i ; j++)
j < i
false
ので、forループを実行しないであろう。あなたはforループ秒j<i
は2 < 2
の値を保持することは、ループが再びスキップされ、false
であることを確認し、見ることになり、i=2
があります声明if(isPrime)
次の繰り返した場合のコードは、それをスキップし、あなたに行きます。
3回目の反復はi=3
です。内側のループは2 < 3
の値を保持しているj<i
が今度はTRUE
であるかどうかチェックされるので、ループが最後に実行されます。
これはうまくいけばうまくいきます。前にも言及したように、まだあなたには不明な点がある場合は、デバッガを使用して実行してください。
はい、初めてですが、それ以降はありません。 – JJJ
あなたの質問は少し不明です:technicaly、これはうまくいきます.i == 1の場合、j Erik
私はユハナに同意しません。 2番目のループは決して実行されませんi == 1 –