我刚刚开始通过一些练习为大学学习 Java。我对编程并不陌生,只是对 Java。我遵循了所有说明,但 Java 的返回函数做了一些非常奇怪的事情。我插入了一些调试输出以更好地理解代码。包括程序的 CMD.output。
我认为该函数会在返回后直接终止。但为什么在这种情况下不这样做呢?
public class Rekursion {
public static void main(String[] args) {
int zahl = 10;
System.out.println("debugStart");
boolean even = isEven(zahl);
System.out.println("debugEnd");
if (even == true) {
System.out.println(zahl + " is even");
} else {
System.out.println(zahl + " is uneven");
}
}
public static boolean isEven(int n) {
System.out.println(n);
if (n > 1) {
System.out.println("debugx");
isEven(n - 2);
}
if (n == 0) {
System.out.println("debug1");
return true;
} else if (n == 1) {
System.out.println("debug2");
return false;
} else {
System.out.println("ERROR");
return false;
}
}
}
输出(命令):
debugStart
10
debugx
8
debugx
6
debugx
4
debugx
2
debugx
0
debug1
程序需要在这里停止,正常情况下。但它继续......
ERROR
ERROR
ERROR
ERROR
ERROR
debugEnd
10 is uneven
慕姐8265434
元芳怎么了
心有法竹
相关分类