今天我練了使用我的編碼測試projecteulers問題。在做主要因素分工的同時,我偶然發現了一些我覺得奇怪的事情。下面是相關的代碼(res
是一個ArrayList):如果VS while循環歐拉計劃-3主要因素劃分
for (int x = 2; x <= n; x++){
if (n % x == 0){
System.out.println("Prime found: " + x);
res.add(x);
n = n/x;
}
}
哪個劃分成1000 [2,4,5,25]。 過了一會兒,我試圖與一個while
-loop替換if
語句來和它印我的正確答案[2,2,2,5,5,5]。
顯然沒有財產以後我不明白,可能有人給我講解一下,好嗎?
編輯:
較新的代碼:
for (int x = 2; x <= n; x++){
while (n % x == 0){
System.out.println("Prime found: " + x);
res.add(x);
n = n/x;
}
}
你還可以發佈你的while循環版本嗎? – Nadir
'while'是做一些代碼,直到某些條件變成假的(所以它** **循環),'if'是做一些代碼,如果某些條件爲真(所以** **一次) – 2016-03-07 14:21:14
https://開頭的文檔。 oracle.com/javase/tutorial/java/nutsandbolts/while.html – assylias