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

Java缺少return语句[重复]

穆子琪
2023-03-14

我有以下代码

class dog{
    String name;
    int barksLeft;
    int bark(int howManyTimes){
        while(howManyTimes >3){
            System.out.println("woff!");
            howManyTimes-=1;
            return howManyTimes;
       }
     }
}

public class implementDog{
    public static void main (String[] args) {
        dog pupy = new dog();
        pupy.barksLeft = pupy.bark(6);
        System.out.println("You have "+pupy.barksLeft+" barks left");

    }
}
implementDog.java:10: error: missing return statement
    }
    ^
1 error
    null

我错过了什么?

共有1个答案

欧阳斌
2023-03-14

如果有一个方法返回void以外的东西,则需要确保通过该方法的每个逻辑路径显式地返回适当对象/类型的东西。在您的例子中,考虑howManyTimes小于或等于3的情况-它将跳过while块,并转到最后。由于那里没有显式的return语句,方法在那种情况下不会返回任何东西,这是不正确的--它在所有情况下都应该返回一个int

还应该注意,非void方法中的最后一个语句应该是returnthrow

 类似资料:
  • 我一直得到一个丢失的返回语句错误,但我不知道在哪里。每次跟随代码,我都感觉到至少有一个if语句提供了return语句。 代码:

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

  • 我不断地得到缺少的return语句并且在解析时到达文件的结尾,然而我已经有了return语句并且我的代码正确地关闭了括号。请帮忙,谢谢

  • 关于或语句中使用的return语句,我有一个问题。正如您在下面的方法中所看到的,希望I一个字符串值。问题是,如果在语句块中使用语句,编译器将返回错误。 当然,我可以将方法头更改为,并使用而不是。但这是正确的做法吗?我是不是漏掉了什么? 任何帮助都是非常感谢的。

  • 我得到的错误是“缺少return语句”,代码如下: 有人能帮帮我吗?多谢.