為什么這樣寫結果會變成三呢?
for (int i = 1; i<=100;i++) {
if (i % 3 != 0) {?
sum = sum + i; // 累加求和
}}
System.out.println("1到100之間不能被3整除的數之和為:" + sum);
這樣寫答案是正確的,但是如果將i區域放到for中(下面那樣),為什么答案就變成3了呢?
int sum = 0;?
for (int i = 1; i<=100&&i%3!=0;i++) {
????sum = sum + i; // 累加求和
}
System.out.println("1到100之間不能被3整除的數之和為:" + sum);
2017-03-06
當 i = 3;
即不滿足執行條件,i % 3!=0這個條件時。
代碼結束,跳出循環,所以sum的值為1+2=3
2017-03-06
你沒有理清楚for循環的執行過程吧,拿你第二個for循環來說,中間的i<=100&&i%3!=0是循環條件,一旦不滿足就會終止循環,這個循環與上面那個的區別也就是多了一個i%3!=0,很明顯的,當i遞增到3的時候,就不能滿足循環條件了,所以sum只會做兩次自增,分別+1, +2。
2017-03-06
i<=100&&i%3!=0?? i=3的時候? i%3=0條件不滿足,自動退出循環。
2017-03-06
不用解答啦~找到毛病了。