Moh*_*oud 4 java recursion while-loop
你能告诉我这个java代码是如何工作的吗?:
public class Main {
public static void main (String[] args) {
Strangemethod(5);
}
public static void Strangemethod(int len) {
while(len > 1){
System.out.println(len-1);
Strangemethod(len - 1);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试调试它并一步一步地遵循代码,但我不理解它.
更新:对不起我没有提到我知道这段代码的结果,但只是想知道执行的步骤..
dan*_*uer 13
那将打印4 3 2 1 1 1 1 1 1 ...
并陷入循环,因为没有任何东西在while循环的范围内修改len.第一次调用(len = 5,4,然后是3)经历一次循环迭代,并等待Strangemethod返回.当len = 2时,while循环调用strangemethod(1),并且由于len不大于1,while循环结束并且该调用返回.但len仍然是最底部剩余的whle循环中的2,所以它再次称为奇怪的方法(2).然后再次.然后再次.
if()比while()更合适.