我正在练习递归(至少这是我想我试图做的)。我的期望是代码打印出“dlrow olleh”11次,但它只会打印一次。原因?递归不起作用
import java.lang.StringBuilder;
public class Practice {
public static void main(String[] args){
String str = "hello world";
int count = new StringBuilder(str).length();
System.out.print(backwards(str, count));
}
public static String backwards(String word, int letters){
while(letters>0){
return new StringBuilder(word).reverse().toString();
}
return backwards(word,letters-1);
}
}
你似乎有交换了基本案例和递归案例。另外,递归中不需要while循环,这就是递归的用处 – UnknowableIneffable
但是除了交换案例之外,在这里使用递归没有意义:所有递归调用都是递减一个变量,然后执行当这个值达到零时。相反,只要立即做那件事。如果你想练习递归,确保你正在做一些需要递归的东西:) –