編寫Java程式,求13-23+33-43+……+973-983+993-1003的值
阿新 • • 發佈:2019-02-20
很簡單一道題,卻搞錯!記下提醒自己!
public static void main(String[] args){
int sum = 0;
int a = 1;
for(int i = 13; i<=1003; i+=10){
i = i*a;
sum += i;
a = -a;
}
System.out.println("aaa");
System.out.println(sum);
}
乍看下沒什麼問題,其實問題出現在迴圈內的第一句。i = i*a;
一執行,發現一直陷入死迴圈!以為是編譯器問題,又歡樂eclipse來做。。。最後一看,問題出現在:i = i*a;
執行第一次迴圈的時候,i = i*a 值為13,第二次i經過賦值,變成了-23!不在迴圈條件13<= i <=1003內,結果出錯,且控制檯沒有報錯!!
程式改為:
public static void main(String[] args){
int sum = 0;
int a = 1;
for(int i = 13; i<=1003; i+=10){
sum += i*a;
a = -a;
}
System.out.println("aaa");
System.out.println(sum);
}