我剛開始學習Java,所以我的問題可能非常愚蠢。爲什麼循環會忽略5的倍數?
我正試圖解決最簡單的問題之一。
修改前面的程序,使得在總和中只考慮三個或五個的數量的倍數,例如, 3,5,6,9,10,12,15,其中n = 17
這是我的代碼:
import java.util.Scanner;
public class NewProblem {
public static void main (String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
for (int i = 0; i < n; i++) {
if (i % 5 == 0 || i % 3 == 0) {
System.out.println(i);
}
else {
i++;
}
}
}
}
當運行它,它示出了三個唯一的倍數。例如,下面是輸出爲N = 17:
所以它只是忽略了5
什麼是錯的倍數? 對不起,如果這個問題真的很愚蠢。
else包含i ++ - 在for循環期間跳過一個元素 –
,當循環再次開始時,「i」自動遞增。當您在'else'語句中執行'i ++'時,您將增加i,然後由於循環而再次增加1。例如,當'i = 1'時,你落在'else'語句並得到'i = 2'。然後,當循環回來時,你會得到'i = 3'。所以'i = 2'從來沒有真正被你的代碼處理過,因爲它立即增加了。 – Tuma
'10'是'5'而不是'3'的倍數。 – Ravikumar