1. 程式人生 > >java練習——利用方法遞迴對1~100求和

java練習——利用方法遞迴對1~100求和

 方法遞迴,顧名思義就是在某一個方法裡呼叫該方法本身,下面是一個利用方法遞迴對1~100求和的例子。

public class Test {
	private int sum=0,num=1;
	public int calSum(int maxnum){
		if(num<=maxnum){
			sum+=num;
			num++;
			calSum(maxnum);
		}
		return sum;
	}
	public static void main(String[] args) {
		Test test=new Test();
		System.out.println("1+2+3+...+100="+test.calSum(100));
	}
}

關於方法遞迴的一些注意事項:

①:同樣的操作,使用方法遞迴比使用for迴圈要慢(至少在我的機器上是這樣的)

②:方法被呼叫時系統會在棧區分配記憶體給方法,方法結束時,該記憶體被回收,但是方法遞迴時,上一層方法並沒有結束,對應的棧記憶體也在佔用中,所以當方法遞迴的次數較多時,就會出現棧溢位,IDE會丟擲“StackOverflowError”這樣一個錯誤。

③:方法遞迴時一定要有出口,不然會一直死迴圈到棧區被佔滿為止。