下面的方法计算什么?假设最初使用i=0调用该方法
public int mysteryMethod(String a, char b, int i) {
if (i == a.length())
return 0;
else if (b == a.charAt(i))
return mysteryMethod(a, b, i + 1) + 1;
else
return mysteryMethod(a, b, i + 1);
}我对递归感到困惑。在第二个返回语句中,+1在做什么。
发布于 2015-11-16 22:06:04
在第二个if语句中,+1是计数的。这里有个提示。
+1计数是多少?
停止在这里阅读,继续尝试。然后继续阅读下一个提示.
要回答上面的问题,您应该看看+1发生的条件。这是b等于a.charAt(i)的时候。
那么,这对计数意味着什么呢?
停止在这里阅读,继续尝试。继续阅读答案。
该函数正在计算b在字符串a中发生的次数。在每次迭代中,它检查迭代(ith)位置是否等于b。如果是的话,将计数增加一个,并从下一个位置重复该函数。否则,只需继续并检查下一个迭代。
https://stackoverflow.com/questions/33745155
复制相似问题