我有以下几点:
public static void main(String[] args){
Screen.clear();
System.out.println(depth(5,0));
}
public static int depth(int n, int depth){
System.out.println(depth);
if(n == 0)return depth;
else{
System.out.println(depth);
return depth(n-1, depth++);
}
}
为什么这总是打印出0,n次?为什么深度没有增加?
你没有预递增。您的函数在递增之前传递0,因此实际上没有递增。试试这个:
public static void main(String[] args){
Screen.clear();
System.out.println(depth(5,0));
}
public static int depth(int n, int depth){
System.out.println(depth);
if(n == 0)return depth;
else{
System.out.println(depth);
return depth(n-1, ++depth);
}
}
或者(如果你想使用后置增量)
public static void main(String[] args){
Screen.clear();
System.out.println(depth(5,0));
}
public static int depth(int n, int depth){
System.out.println(depth);
if(n == 0)return depth;
else{
System.out.println(depth++);
return depth(n-1, depth);
}
}