我的代碼在這里運行良好,但在我看來,應該拋出例外。我的功能不斷地呼叫自己。最終,它在陣列中的最后一個元素上被呼叫并添加該數字。然后,我將陣列從下一個位置復制到末尾。但是由于我沒有下一個元素,所以我不能從下一個元素開始復制陣列(我已經在最后一個位置),為什么它可以作業?
System.out.println(sumOfArrayRecursively(new int[]{5, 9, 45, 6, 2, 7, 34, 8, 6, 90, 5, 243}));
public static int sumOfArrayRecursively(int [] arr){
if(arr.length == 0) return 0;
else{
return arr[0] sumOfArrayRecursively(Arrays.copyOfRange(arr, 1, arr.length));
}
}
uj5u.com熱心網友回復:
這就是遞回的作業原理:一旦你的函式被最后一次呼叫,陣列長度為 0 并回傳而不嘗試訪問越界元素。
這是一篇描述與您的問題類似的文章
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/430690.html
