错误“缺少退货声明”

时间:2015-10-07 08:41:49

标签: java

我正在运行此java代码,我收到错误“缺少return语句” 请帮忙。我在Windows中使用cmd运行。

public class Fibonocci {

    public static void main(String[] args) {

        int i, limit, c;
        i = 0;
        limit = 5;
        System.out.println("Fibonocci series :");
        for (c = 1; c <= limit; c++) {
            System.out.println(fib(i));
            System.out.println("/n");
            i++;
        }

    }

    public static int fib(int p) {
        if (p == 0) {
            return 0;
        }
        if (p == 1) {
            return 1;
        } else if (p > 1) {
            return (fib(p - 1) + fib(p - 2));
        }
    }
}

2 个答案:

答案 0 :(得分:2)

如果p<0,您的代码不会返回任何内容。

您可以将其更改为:

  public static int fib(int p){
      if (p<=0) // or perhaps you wish to throw an exception if a negative value is entered
          return 0;
      else if (p==1)
          return 1;
      else // when you end the if statement in else instead of else-if
           // your method is guaranteed to return something for all inputs
          return(fib(p-1)+fib(p-2));
  }

答案 1 :(得分:1)

您缺少默认return。您将从ifelse if返回。

如果两个条件都不满意怎么办?你也需要提供它。

我建议返回-1 id两个不满意的条件,这是负数negative

public static int fib(int p) {
        if (p == 0)
            return 0;
        else if (p == 1)
            return 1;
        else if (p > 1)
            return (fib(p - 1) + fib(p - 2));
        else
            return -1;
    }