gpt4 book ai didi

java - 在 For 循环中执行递归

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:41:31 25 4
gpt4 key购买 nike

我正在尝试理解为给定输入字符串编写排列的代码。

例如:输入字符串:123,输出:123,132,213,231,312,321。

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

 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 到 1。我从第一次迭代中了解到的一件事是 'i' 在达到基本情况时增加到 1,即

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

我尝试进一步调试,我无法理解连续迭代的值一直在 0 和 1 之间变化。

综上所述, 我对 “for loop” 和第一次迭代后 try block 中的两条指令之间的关系感到困惑。

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

最佳答案

我尽量用图详细说明,希望对你有帮助。这个递归不需要 try-catch block ,你可以删除它,它会工作得很好

enter image description here

关于java - 在 For 循环中执行递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32858942/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com