【发布时间】:2021-02-08 06:22:07
【问题描述】:
您好,我有一个关于代码末尾的多个返回语句与单个返回语句的快速问题。
从第一个代码开始,对每个 if、else if 和 else 语句都使用了 return 语句,它给了我一个错误。而且我以为我涵盖了所有可能的情况,但它在下面给我一个错误。
错误: 缺少返回语句行:16
是什么导致了这个错误?另外,有什么方法可以改进我的第二个代码?
public int caughtSpeeding(int speed, boolean isBirthday) {
if (!isBirthday)
if (speed <= 60)
return 0;
else if (speed <= 80)
return 1;
else
return 2;
if (isBirthday)
if (speed <= 65)
return 0;
else if (speed <= 85)
return 1;
else
return 2;
}
从这第二个代码中,我能够摆脱错误。
public int caughtSpeeding(int speed, boolean isBirthday) {
int flag = 0;
if (!isBirthday)
if (speed <= 60)
flag = 0;
else if (speed <= 80)
flag = 1;
else
flag = 2;
if (isBirthday)
if (speed <= 65)
flag = 0;
else if (speed <= 85)
flag = 1;
else
flag = 2;
return flag;
}
【问题讨论】:
-
用
else替换if(isBirthday) -
没有大括号的嵌套 if 语句自找麻烦。帮助您自己和其他所有人阅读或维护您的代码并使用
{}。 -
用 else 替换 if(isBirthday) 解决了问题!谢谢。我有我的 {} 用于我的 if 语句,但是当我将我的代码复制到这篇文章时错过了它。我的错。
标签: java if-statement return