好吧,我对Java中的递归感到困惑.说我有以下代码:
static int findShortestString(String[] paths, int lo, int hi) {
if(lo==hi)
return lo;
int minindex=findShortestString(paths,lo+1, hi);
if(safeStringLength(paths[lo])<safeStringLength(paths[minindex]))
return lo;
return minindex;
Run Code Online (Sandbox Code Playgroud)
现在问题不是关于代码本身,而是关于递归如何工作.minindex被设置为等于递归调用.所以第一次运行函数并尝试将minindex设置为某个东西时,它会这样做,然后函数调用自身.但if语句什么时候运行呢?只有当minindex真正拥有真正的价值时它才会运行吗?我只是无法绕过这个.如果minindex导致函数递归并递归,那么if语句什么时候会被检查?当lo==hi?我不明白:(