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

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

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

  1. class Fibonacci{
  2. public static void main(String[] args){
  3. int[] startArray = {1,1,0,0,0,0,0,0,0,0};
  4. int[] resultArray = fib(startArray);
  5. System.out.println("Iterative Ausgabe des Fibonacci-Arrays:");
  6. printIterativ(resultArray);
  7. System.out.println();
  8. System.out.println("Rekursive Ausgabe des Fibonacci-Arrays:");
  9. printRekursiv(resultArray);
  10. }
  11. public static int[] fib(int[] array){
  12. for(int i=0;i<array.length;i++){
  13. array[i+1] = array[i] + array[i-1];
  14. return array;
  15. }
  16. }
  17. public static void printIterativ(int[] array) {
  18. System.out.println(array);
  19. }
  20. public static void printRekursiv(int[] array) {
  21. for(int i=0;i<array.length;i++){
  22. System.out.println(array[i]);
  23. }
  24. }
  25. }
3ks5zfa0

3ks5zfa01#

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

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

  1. public static int[] fib(int[] array){
  2. for(int i=0;i<array.length;i++){
  3. array[i+1] = array[i] + array[i-1];
  4. return array;
  5. }
  6. return array;
  7. }

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

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

展开查看全部

相关问题