因此,我很难试图解决这个编码问题:他们希望我回答以下四个问题:“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
提交
取消