我是 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;
}
白衣非少年
TA贡献1155条经验 获得超0个赞
退货后您没有任何代码。警告说你错过了回报
注意:不建议更改您的参数a = 8;
,但如果您的 if 语句均未输入,则必须返回某些内容。在这种情况下,在该行之后为真或假
您可能还想捕获以下结果 debug(4, 5);
慕村225694
TA贡献1880条经验 获得超4个赞
编译器试图(以它自己的方式)告诉您else
case ( a+b != 12 && a+b != 18
) 正在执行,a=8
并且该代码分支缺少return
语句。
Java 编译器在程序流分析方面非常聪明,所以当它告诉某些地方有问题时,说明确实有问题。
添加回答
举报
0/150
提交
取消