2014-09-12 214 views
0

我正在編寫需要按​​順序打印這些數字的Java代碼:「0 5 10 3 8 1 6 11 4 9 2 7」。我是Java的新手,但並不擅長循環。我從0開始找到一個12點星的點,並試圖找到需要被一條線作爲星的點。Java循環遍歷數字並添加5

我該如何做一個從0開始的循環,並添加5到每個數字..所以0 + 5 = 5,5 + 5 = 10,10 + 5 = 3(這是我的問題所在。我如何使它從11回到0?

我知道這看起來混亂...也可能是非常容易..但任何幫助,將不勝感激。

+3

可能是一個更好的問題應該從算法開始你必須記住,你已經在java中嘗試過了。 – 2014-09-12 14:14:25

+0

10 + 5 = 15,你怎麼得到3? – 2014-09-12 14:14:59

+0

@ElliottFrisch這是模數12(「12點星」)。 – 2014-09-12 14:18:26

回答

0

由5遞增,直到你通過60,顯示模12.喜歡的東西的結果,

for (int i = 0; i < 60; i += 5) { 
    System.out.println(i % 12); 
} 
+0

非常感謝..你真的幫了我很多! – Justin 2014-09-12 14:37:27

0

這就是所謂的模量,和java有操作%這給整的剩餘部分分部

15/12 == 1 
15 % 12 == 3 

(15/12) * 12 + (15 % 12) == 15 

請參閱Wikipedia。

當然,你的情況,你也可以做

n += 5; 
if (n >= 12) { 
    n -= 12; 
} 

,而不是使用模:

n = (n + 5) % 12; 
0

從0只是想迭代到12日,由5您數乘以和應用模數12:

for (int i = 0; i < 12; i++) { 
    System.out.println(i * 5 % 12); 
} 
+0

你搖滾的人..非常感謝。從閱讀所有這些知識中學到了很多東西。 – Justin 2014-09-12 14:36:08

0

我相信你要找的操作員是modulus運營商。模數給你從分裂問題的餘數。在這種情況下,您使用12作爲分母。

0 + 5 % 12 = 5 (0, remainder 5) 
5 + 5 % 12 = 10 (0, remainder 10) 
10 + 5 % 12 = 3 (1, remainder 3) 
15 + 5 % 12 = 8 (1, remainder 8) 
20 + 5 % 12 = 1 (2, remainder 1) 
0

試試這個:

for(int i=0; ; i = (i+5)%12){ 
    System.out.println(i); 
    if(i==7)break; 
} 
+0

你應該用文字解釋解決方案,並提供代碼片段作爲例子。 – 2014-09-12 14:41:00