這段代碼邏輯上哪里不對?
public static void main(String[] args) {
?? ??? ??? ?int sum = 0; // 保存不能被3整除的數之和
?? ??? ??? ?
?? ??? ??? ?// 循環變量 i 初始值為 1 ,每執行一次對變量加 1,只要小于等于 100 就重復執行循環
?? ??? ??? ?for (int i = 1; i <= 100 && i % 3 != 0? ;i++ ) {
?? ??? ??? ??? ?
?? ??? ??? ??? ?// 變量 i 與 3 進行求模(取余),如果不等于 0 ,則表示不能被 3 整除
?? ??? ??? ??? ?//if (i % 3 != 0) {
?? ??? ??? ??? ??? ?sum = sum + i; // 累加求和
?? ??? ??? ??? ?//}
?? ??? ??? ?}
?? ??? ??? ?
?? ??? ??? ?System.out.println("1到100之間不能被3整除的數之和為:" + sum);
?? ??? ?}
2015-12-09
當 i = 3 的時候,不滿足 ?i <= 100 && i % 3 != 0?的條件,for循環結束 ,只計算了 1 和 2 ,結果為 3
2015-12-09
我想明白了,謝謝大家,這根本就是兩個不同目的循環條件,一個是用來判斷i<=100;另一個是用來求能被3整除的數字,當i=3時,3/3=1余數為0,不滿足0!=0這個表達式,所以在i=3時就已經終止了for循環!
2015-12-09
問題出在這一句 ?
i <= 100 && i % 3 != 0
前半句是布爾型,后半句是int型,類型不對,應該把后半句再寫一個if循環判斷
2015-12-09
for (int i = 1; i <= 100 ;i++ )
2015-12-09
for循環括號第二段把i%3!=0刪掉,這部分是進入循環的條件,一旦是false就結束循環執行了