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

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

白宏义
2023-03-14

下面的Java不工作,因为它缺少一个return语句。我搞不懂怎么了。有什么想法吗?

public String setusername(String u) {    
    if (username.length() > usernameLimit) {
        System.out.println("overlimit");
    } else {
        return this.username = u;
    }
}

即使我去掉字符串u,它也会给出相同的错误,如果我添加int usernameLimit,它也会给出相同的错误。

共有3个答案

谢灵均
2023-03-14
if (username.length() > usernameLimit) {
    System.out.println("overlimit");
    ////////////return what??? 
 }

问题是,当username时,该方法需要返回语句。长度()

晋奕
2023-03-14

您的返回语句位于其他块中,因此编译器不知道在运行时函数是否会返回某些内容。

改成

public String setusername(String u) {
String result="overlimit";
if (username.length() <= usernameLimit) {
    this.username = u;
    result=u;
}
return result;
}

应该可以

从智志
2023-03-14

代码使用分支(if循环)。从编译器的角度来看,两个分支,即if和else块都可能被执行。但回报只在else街区。因此,编译器抱怨缺少返回。

解决方案1:尝试将返回也放在如果块中(根据您的要求)

解决方案2:将你的回报移出If-Else结构。您可以使用一个变量来指定返回值,并在if或else中相应地填充它。

 类似资料:
  • 我正在运行这段java代码,遇到一个错误“缺少返回语句”,请帮助。我在windows中使用cmd运行。

  • } 当我运行这段代码时,我得到以下错误: 我该怎么做来解决这个问题呢? 见下面的条件:给定一个从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”。