2 回答

TA贡献1831条经验 获得超10个赞
尝试这个。每次运行后,取消注释其中一个递归调用。
public class ForEverDemo {
static long count = 0;
public static void main(String[] args) {
alongtime(0);
System.out.println("count = " + count);
}
public static void alongtime(int v) {
count++;
if (v == 9) {
return;
}
for (int i = 0; i < 3; i++) {
alongtime(v + 1);
// alongtime(v + 1);
// alongtime(v + 1);
// alongtime(v + 1);
// alongtime(v + 1);
}
}
}

TA贡献1998条经验 获得超6个赞
终count有其价值9。通过打印这个值来检查这个。
static void calc(int prev, int count) {
System.out.println("count=" + count + " prev=" + prev);
if (count == 9) {
return;
}
...
你的递归中有很多分支,需要大量的计算。这就是为什么它没有结束。你可以再等一个小时或几天/几年才能看到这个程序的结束。或者用有效的代码替换此代码。
添加回答
举报