我只是介绍了递归和我得到了下面的代码行:递归输出
public class RecursionThree
{
public void run(int x)
{
if(x<5)
run(x+1);
out.println(x);
}
public static void main(String args[] )
{
RecursionThree test = new RecursionThree();
test.run(1);
}
}
和输出应该是:5 4 3 2 1,我得到它为什么会打印5(因为5 <将等于false,它会打印x,即5)。但是,我不明白为什么它会打印4 3 2 1。感谢您的帮助
你的输出应该是'1 2 3 4 5',每个都在一个新行中。作为一个概念的递归可以被看作是让摄像机具有分离(实时)屏幕,其镜头指向其屏幕,其反过来显示屏幕及其图像在原始图像的屏幕内不断重复,除了每次较小。就像你的情况一样。你的方法'run()'一次又一次地调用'run()',每次给它一个**更大的**号码直到满足条件(在这种情况下,直到数字是5)。 – shrmn
输出是5 4 3 2 1,每个都在一个新行(我运行代码),但我想我现在得到它,谢谢 – JavaB
@shrmn输出不能是'1 2 3 4 5'。递归阶段之后,而不是之前完成打印。这与你所说的“5 4 3 2 1”完全相反。发帖前请检查。 –