因此,我很難試圖解決這個編碼問題:他們希望我回答以下四個問題:“getValue(...)”將使用以下輸入執行多少次,結果是什么?(1) 獲取值(“foo”, 0);(2) 獲取值(“柱”,2);(3) 獲取值(“巴茲”,0);(4) 獲取值(“富巴”, 1);我知道前兩個答案:1) 將執行一次并返回 1 次2)將執行1次并返回3但是最后兩個問題(3,4)我不明白。任何人都可以幫助澄清這段代碼到底在做什么,并提示答案是什么?代碼如下:import java.util.HashMap;import java.util.Map;public class myClass {private Map<String,Integer> map;public myClass() {map = new HashMap<>();map.put("foo", 1);map.put("bar", 3);}public int getValue(String input, int numRetries) throws Exception {try { return map.get(input);}catch (Exception e) { if (numRetries > 3) { throw e; } return getValue(input, numRetries + 1);}}提前感謝您。
1 回答

呼啦一陣風
TA貢獻1802條經驗 獲得超6個贊
您在(1)和(2)中正確回答的代碼嘗試從HashMap中獲取值,因為它的鍵。
getValue() 函數是一個遞歸函數,這意味著它根據“重試次數”值多次調用自己
(3)代碼自稱4次(其中numRetry從0,1,2,3開始,然后“>3”子句變為真并引發異常)
(4) 代碼調用自身 3 次(其中 numRequiries 從 1,2,3 進展,然后 '>3' 子句變為 true 并引發異常)
添加回答
舉報
0/150
提交
取消