Java 程序正在运行,但仍显示异常
我执行了这段代码,也得到了输出,但同时我也得到了一条异常消息,即 输出:Java 程序正在运行,但仍显示异常,java,Java,我执行了这段代码,也得到了输出,但同时我也得到了一条异常消息,即 输出: 0 1 1 2 3 5 8Exception in thread "main" java.lang.StackOverflowError 在那之后,在com.company.Main.fibnacci(Main.java:24)上用退出代码1讲了100多句台词 package com.company; import java.util.Scanner; class Main { static int a =
0 1 1 2 3 5 8Exception in thread "main" java.lang.StackOverflowError
在那之后,在com.company.Main.fibnacci(Main.java:24)上用退出代码1讲了100多句台词
package com.company;
import java.util.Scanner;
class Main {
static int a = 0;
static int b = 1;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter no. of terms in fibonacci series ");
int n = sc.nextInt();
System.out.print("0 1 ");
fibnacci(n);
}
public static void fibnacci(int n) throws StackOverflowError {
int c = a + b;
if (n >= 1) {
System.out.print(" " + c);
}
a = b;
b = c;
fibnacci(n - 1);
}
}
这是因为您必须设置条件来停止递归。此代码将继续运行,因为您的方法将始终被调用。您需要设置一个条件,以便在得到结果后再次停止调用方法“fibnacci(n-1)。这是否回答了您的问题?如果
n>=1
,则会打印代码,否则不会退出。您可能需要添加else{return;}
。递归需要一个结束点/条件。