有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在For循环内部执行递归

我试图理解为给定输入字符串编写排列的代码

例如:输入字符串:123,输出:123132213231312321

下面粘贴的代码片段就是这样做的

 public static void main(String args[]) {

    permuteString("", "123");
   }

public static void permuteString(String beginningString, String endingString) {
    if (endingString.length() <= 1)
        System.out.println(beginningString + endingString);
    else
        for (int i = 0; i < endingString.length(); i++) {
            try {
                 // System.out.println(i);
                String newString = endingString.substring(0, i) + endingString.substring(i + 1);
                permuteString(beginningString + endingString.charAt(i), newString);
            } catch (StringIndexOutOfBoundsException exception) {
                exception.printStackTrace();
            }
        }

我对整数'i'在for循环中何时递增感到非常困惑,即从i=0 to 1. 我从第一次迭代中了解到的一件事是'i'在达到基本情况时增加到1,即

   if (endingString.length() <= 1)
        System.out.println(beginningString + endingString);

我试图进行进一步的调试,我的值在0和1之间不断变化,这是我无法理解的连续迭代

总而言之, 我对第一次迭代后"for loop"和try块中的两条指令之间的关系感到困惑

如果有人能指导我完成这个过程,我会很高兴


共 (0) 个答案