Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 程序正在运行,但仍显示异常_Java - Fatal编程技术网

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;}
。递归需要一个结束点/条件。