为什么函数在java中不返回数组?

busg9geu  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(333)

我正在做一个小脚本来计算斐波那契数列,通过一个数组来给出我想要的位数,我只是不明白为什么我的 fib 函数表示没有返回数组。
代码:

class Fibonacci{
    public static void main(String[] args){
        int[] startArray = {1,1,0,0,0,0,0,0,0,0};
        int[] resultArray = fib(startArray);

        System.out.println("Iterative Ausgabe des Fibonacci-Arrays:");
        printIterativ(resultArray);

        System.out.println();

        System.out.println("Rekursive Ausgabe des Fibonacci-Arrays:");
        printRekursiv(resultArray);
    }

    public static int[] fib(int[] array){
        for(int i=0;i<array.length;i++){
            array[i+1] = array[i] + array[i-1];
        return array;
        }
    }

    public static void printIterativ(int[] array) {
        System.out.println(array);
    }

    public static void printRekursiv(int[] array) {
        for(int i=0;i<array.length;i++){
            System.out.println(array[i]);
        }
    }
}
3ks5zfa0

3ks5zfa01#

public static int[] fib(int[] array){
        for(int i=0;i<array.length;i++){
            array[i+1] = array[i] + array[i-1];
        return array;
        }
    }

这是范围的问题。只有return语句在for循环中,但是如果for循环从未执行,则没有return语句。
所以:

public static int[] fib(int[] array){
        for(int i=0;i<array.length;i++){
            array[i+1] = array[i] + array[i-1];
        return array;
        }
    return array;
    }

public static int[] fib(int[] array){
        for(int i=0;i<array.length;i++){
            array[i+1] = array[i] + array[i-1];
        }
        return array; 
    }

会起作用,因为它们对所有场景都有返回语句。你需要弄清楚哪一个符合你的要求。但是,由于实际上没有在任何地方调用fib,因此也可以删除该方法。

相关问题