java練習——利用方法遞迴對1~100求和
阿新 • • 發佈:2019-01-23
方法遞迴,顧名思義就是在某一個方法裡呼叫該方法本身,下面是一個利用方法遞迴對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”這樣一個錯誤。
③:方法遞迴時一定要有出口,不然會一直死迴圈到棧區被佔滿為止。