2014-10-02 84 views
-2

我想看看我可以用for循環做些什麼很酷的事情。 這裏有一個簡單的代碼來打印在10_000和100_000之間可以被321整除的所有數字。這個java for循環有什麼問題?

,但它不工作:

for(int i=10000;i<=100000 && i%321==0;i++){ 
    println(i); 
} 

是不是真的,我可以把第二和第三分號之間的條件語句? 這只是輸出什麼,所以我假設沒有我值真。

+3

如果'I = 10000',確實'我321%== 0'? – 2014-10-02 03:14:40

+0

for循環的主體只有在條件爲「true」時纔會執行。 'i = 100000' _and_'i%321 == 0'會在'i = 10000'時變爲真? – mkobit 2014-10-02 03:15:57

+0

*語法沒有錯,*只是說你的*條件*從來不是'真'。如果編譯器會告訴你這個語法有什麼問題。 – EJP 2014-10-02 03:23:19

回答

6

只要i % 321 == 0爲假,該循環將立即停止,這將立即停止。嘗試:

for (int i = 10000; i <= 100000; i++) { 
    if (i % 321 == 0) { 
    println(i); 
    } 
} 

或者:

for (int i = 10000 + (10000 % 321); i <= 100000; i += 321) { 
    println(i); 
} 
2

問題是與你的循環狀態。

when (i = 10000) 

i % 321 = 10000 % 321 = 49 
So the condition i % 321 == 0, is false 

你需要嘗試這樣的事情,爲了工作

for (int i = 10000; i <= 100000; i++) { 
    if (i % 321 == 0) { 
    println(i); 
    } 
}