1. 程式人生 > >編寫Java程式,求13-23+33-43+……+973-983+993-1003的值

編寫Java程式,求13-23+33-43+……+973-983+993-1003的值

很簡單一道題,卻搞錯!記下提醒自己!

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);
	}