2017-02-20 9 views
-1
public class Test { 
    public static void main(String[] args) { 
     for (int i = 1; i <= 100; i++) { 
      int num = 0; 
      if (i % 3 == 0) { 
       System.out.println(i); 
       num++; 
      } 

      if (num == 5) 
       break;    
     } 
    } 
} 

上記の中3で割り切れる最初の5の整数は、私のコードですが、私は100のJava:出力0-100

に0から3で割り切れるすべての整数の結果を得ました

私はJavaの初心者ですから、どこか間違っていると誰かに教えてください。 (私はこの質問の代わりの解決策を探しているわけではありませんが、num == 5のときにループが止まらない理由を説明しています)。

ありがとうございます。

+6

forループでnumを0にリセットして、常にゼロになるようにします。 –

+2

実際には常に0または1です –

+0

numの初期化をforループの前に移動します。 –

答えて

4

理由あなたがnumゼロにループの各反復を再定義しているので0-100から3で割り切れる数字のすべてがあるを取得しています。ループの外側に初期化を配置し、内側にあるように増分します。

int num = 0; 

for (int i = 0; i <= 100; i++) { 
    if (i % 3 == 0) { 
     System.out.println(i); 
     num++; 
    } 

    if (num == 5) break; 
} 
+0

ありがとうございました。問題が解決しました。 – User3301

2

なぜ答えが間違っていると証明できますか?

int num = 3; 
int count = 0; 
while ((num < 100) && (count < 5)) { 
     System.out.println(num); 
     num+=3; 
     count++; 
}