gpt4 book ai didi

java - 谁能解释一下下面的递归是如何工作的?

转载 作者:行者123 更新时间:2023-12-02 05:17:30 26 4
gpt4 key购买 nike

我在理解以下递归代码时遇到一些困难:

public class recursive {
public static void main(String[] args){
helper(0) ;
}

public static void helper(int i){
int a=3;
if(i==a){
System.out.println("yes:"+i);
return;
}else{
for(;i<a;i++){
System.out.println("no:"+i);
helper(i+1);
System.out.println("end:"+i);
}
}
}
}

输出如下:

no:0
no:1
no:2
yes:3
end:2 //why this is 2?
end:1 //why this is 1?
no:2
yes:3
end:2
end:0
no:1
no:2
yes:3
end:2
end:1
no:2
yes:3
end:2

我不明白为什么第一个结尾是2。谁能解释一下这个简单程序中的递归是如何工作的?

最佳答案

尝试

public static void helper(int i){
int a=3;
if(i==a){
System.out.println("yes:"+i);
return;
}else{
System.out.println("no:"+i);
helper(i+1);
}
}

递归的一个想法是消除循环

关于java - 谁能解释一下下面的递归是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26794596/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com