【问题标题】:Why is function not returning array in Java?为什么函数在 Java 中不返回数组?
【发布时间】:2021-03-22 14:52:41
【问题描述】:

我正在制作一个小脚本来计算斐波那契数列,通过一个数组给出我想要的位数,我只是不明白为什么我的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]);
        }
    }
}

【问题讨论】:

  • 我不知道是谁因为“需要调试细节”而否决了这个问题,这个问题包含了找到问题的所有内容(以及更多内容)。
  • 欢迎来到 Stack Overflow。请将确切的错误消息粘贴到您的问题中。它的帮助不仅仅是没有返回数组。(@Stultuske:我没有投反对票。)如果可以的话,还可以告诉你从代码中的哪一行得到消息。
  • @OleV.V.它的措辞很糟糕,但是“我的 fib 函数说没有返回数组。”告诉我他的编译器抱怨 fib 方法没有返回语句。看到fib方法只有6行,检查起来并不难。

标签: java arrays function return


【解决方案1】:
 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,因此您也可以删除该方法。

【讨论】:

  • One_Sleeve,如果您正确缩进了代码,就会更清楚地看到这是问题所在——对我们和您自己而言。所以下次请注意缩进您发布到 Stack Overflow 的代码。您的 IDE 可以为您完成。
猜你喜欢
  • 2021-01-26
  • 1970-01-01
  • 2021-02-08
  • 2011-07-06
  • 2017-05-05
  • 1970-01-01
  • 2015-07-21
  • 1970-01-01
  • 2013-12-04
相关资源
最近更新 更多