2017-02-20 45 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 0分至100的Java:輸出前5個整數,可以通過3內0-100

整數結果

我是Java的初學者,所以有人可以告訴我我在哪裏做錯了? (我不想爲這個問題尋找替代解決方案,只解釋爲什麼當num == 5時循環不停止)。

在此先感謝。

+6

您正在將for循環中的num重置爲0,所以它始終爲零。 –

+2

實際上它總是0或1 –

+0

將num的初始化移動到for循環之前。 –

回答

4

原因你要0-1003整除的數字的所有是因爲你重新定義num循環到零的每個迭代。只需在循環外部進行初始化,然後像在裏面一樣增加。

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++; 
}