当前位置: 首页 > 知识库问答 >
问题:

错误"缺少返回语句"[重复]

寿鸣
2023-03-14

我正在运行这段java代码,遇到一个错误“缺少返回语句”,请帮助。我在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个答案

濮君植
2023-03-14

您缺少一个默认的返回值。您正在从ifelse if返回。

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

我想建议返回-1id这两个条件不满足这是为负数

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;
    } 
秦才
2023-03-14

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

您可以将其更改为:

  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));
  }

 类似资料:
  • 下面的Java不工作,因为它缺少一个return语句。我搞不懂怎么了。有什么想法吗? 即使我去掉字符串u,它也会给出相同的错误,如果我添加int usernameLimit,它也会给出相同的错误。

  • } 当我运行这段代码时,我得到以下错误: 我该怎么做来解决这个问题呢? 见下面的条件:给定一个从1到4(含)的数字,返回该数字的一个单词表示。例如,给定2,返回2。如果数字大于4,则返回短语“太大”。如果数字小于1,则返回短语too small。

  • 所以我得到了一个编译器错误,我丢失了一个返回语句,我已经研究了其他类似的问题,但我仍然对这个问题感到困惑。 如果之前有人问过这个问题,我会提前道歉,但我已经看过了其他各种问题,我似乎无法弄清楚这一点。

  • 我想在HW的整数中找到奇数。所以CountOddigtis(56781)应该返回(非打印)5 7 1。我的方法是将整数转换为字符串,并使用它返回。我遇到的问题是 > 缺少返回语句错误,即使我在if语句中有一个返回语句。有人能解释这个错误意味着什么以及如何克服它吗? 当我把返回x;放在方法的末尾时,它会打印56781的错误答案49。 Java解决stringn.charat(x)%2!=0考虑到我可

  • 问题内容: 为什么这给了我一个丢失的退货陈述错误?每个if / else都有返回值,最后一个括号出现错误 问题答案: 每个语句都在一个语句内。虽然从逻辑上讲这是不可能的,但是当所有评估都不为真时,编译器需要返回。 我建议: 我认为,此解决方案可解决编译器问题并稍微提高可读性。 或者,有以下解决方案: 引发异常将使你可以退出方法而无需返回任何信息……因为可以说,如果到达最后一个,显然会出错。

  • 我真的弄不明白为什么我的代码会导致这个错误,一切看起来都是正确的,以为它总是出现,因为它缺少一个return语句 我试着寻找解决方案,我看到“if”后面的“while”是一个解决方案,但由于我需要多个数字,我不能使用while,而必须使用“what if”。