java - 汉诺塔在java中回归

标签 java towers-of-hanoi

public static void solveTowers(int disks, int sourcePeg, int destinationPeg, int tempPeg)
{
    //always set the base case in any type of recursion programs
    if(disks == 1)
    {
        System.out.printf("\n%d --> %d", sourcePeg, destinationPeg);
        return;
    }

    //call the method itself
    solveTowers(disks - 1, sourcePeg, tempPeg, destinationPeg);

    System.out.printf("\n%d --> %d", sourcePeg, destinationPeg);

    solveTowers(disks - 1, tempPeg, destinationPeg, sourcePeg);
}

我的问题是第一个 System.out 语句下的“return”是什么?

调试时,第一个 solveTowers 方法到达基本情况(即磁盘 == 1)后, 它进入 if 语句,然后到达 return; 后,进入第二个 System.out 语句,然后是第二个solveTowers > 方法,所以问题是为什么 return; 跳过了第一个solveTowers 但没有跳过第二个?

最佳答案

return 语句一旦到达就会结束函数或方法的执行。

由于该方法的返回类型是void,因此不需要返回值来结束函数,可以像这样简单地调用:return;

如果返回类型不同(例如整数),则必须返回如下整数:return 1;

关于java - 汉诺塔在java中回归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14456884/

相关文章:

c++ - 汉诺塔

recursion - 汉诺塔 : Recursive Algorithm

java - 为什么这段代码总是进入 catch block ?

java.lang.NumberFormatException : empty string - OBJ Model Loader

c++ - 河内线性塔

java - Java 中使用堆栈的汉诺塔

java 使用递归查找字符串中的子字符串

java - 关于使用 DAO/Spring MVC/Hibernate 的建议

java - 从 SD 卡读取文件的标准方法