为了账号安全,请及时绑定邮箱和手机立即绑定

在 Java 中,我无法在方法中的 return 语句之后添加代码

在 Java 中,我无法在方法中的 return 语句之后添加代码

饮歌长啸 2021-10-27 10:15:55
我是 Java 新手,我正在学习带有 return 语句的方法。我的 IDE 说:此方法必须返回布尔类型的结果但是我的方法只返回布尔值。如何解决?public class Test {public static void main(String[] aargs) {    debug(4, 5);}public static boolean debug(int a, int b) {    if(a+b == 12) {        return true;    }else if(a+b == 18){        return false;    }    a = 8;}}
查看完整描述

3 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

这是java的设计模式。我们不能在 return 语句之后写任何代码。如果您尝试使用此代码进行编译,则编译将失败。抛出异常也是一样。


这是因为在返回或抛出异常语句后,控制将转到调用者位置。所以这些行不能被执行。


在您的情况下,您必须返回一些布尔值。


代码应该是这样的


public static boolean debug(int a, int b) {

    boolean flag = false;

    if(a+b == 12) {

       flag = true;

    }else if(a+b == 18){

        flag = false;

    }

    a = 8;

    return flag;

}


查看完整回答
反对 回复 2021-10-27
?
白衣非少年

TA贡献1155条经验 获得超0个赞

退货后您没有任何代码。警告说你错过了回报

注意:不建议更改您的参数a = 8;,但如果您的 if 语句均未输入,则必须返回某些内容。在这种情况下,在该行之后为真或假

您可能还想捕获以下结果 debug(4, 5);


查看完整回答
反对 回复 2021-10-27
?
慕村225694

TA贡献1880条经验 获得超4个赞

编译器试图(以它自己的方式)告诉您elsecase ( a+b != 12 && a+b != 18) 正在执行,a=8并且该代码分支缺少return语句。

Java 编译器在程序流分析方面非常聪明,所以当它告诉某些地方有问题时,说明确实有问题。


查看完整回答
反对 回复 2021-10-27
  • 3 回答
  • 0 关注
  • 315 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信