任何人都可以解释这段代码如何打印1到10 ???
class demo
{
public static void main(String[] args)
{
display(10);
}
private static void display(int n)
{
if (n > 1)
{
display(n - 1);
}
System.out.println(n);
}
}
答案 0 :(得分:1)
这是对显示方法的递归调用。这里传递给display方法的参数值存储在一个堆栈中。当if条件失败时,如果从堆栈中取出并通过“System.out.println(n)”行打印,则为n的值。 换句话说,每次通过传递一个数字来调用显示方法时,数字将被存储在一个堆栈中,这样当代码从递归中出来时,它将使用堆栈中的那个数字。
执行干运行时,您可以看到值1传递给显示方法时if条件失败并且下一行打印值1然后将打印2堆栈中等等它将打印最多10个是第一个传递的值。
答案 1 :(得分:0)
因此main方法运行display方法并传递值10.然后,检查该值是否大于1(它是)。下一个。再次调用显示方法,其值为n-1,在这种情况下为9。最后,打印出10。
现在9经历了同一个循环。 9大于1并且显示的值为n-1,现在为8,打印出9,现在8经过显示方法。这种情况一直持续到值为1,在这种情况下,1不大于1,打印出1并退出程序。
如果您想更多地研究它,这称为递归方法。