public static boolean isValidDate(int month, int day) {
if (month >= 3 && month <= 5) {
if (month == 3) {
if (day >= 1 && day <= 31) {
return true;
} else {
return false;
}
} else if (month == 4) {
if (day >= 1 && day <= 30) {
return true;
} else {
return false;
}
} else if (month == 5) {
if (day >= 1 && day <= 15) {
return true;
} else {
return false;
}
}
} else {
return false;
}
}获取这些错误:不确定如何修复它们,我返回所有内容。
BoxOffice.java:81: error: missing return statement
}
BoxOffice.java:85: error: missing return statement
}发布于 2017-03-03 06:07:27
编译器不够聪明,无法推断出内部if覆盖了外部if范围内的所有场景。只要改变就好
else if(month == 5) {至
else { // month must be 5 here发布于 2017-03-03 06:09:17
shmosel's answer描述了问题和破坏性最小的修复方法。
就我个人而言,我会把它写成一个switch,并避免编写冗长的if/else语句来检查日期:
switch (month) {
case 3:
return (day >= 1 && day <= 31);
case 4:
return (day >= 1 && day <= 30);
case 5:
return (day >= 1 && day <= 15);
default:
return false;
}发布于 2017-03-03 06:12:31
您需要将else if (month == 5)转换为else ....
public static boolean isValidDate(int month, int day)
{
if (month >= 3 && month <= 5)
{
if (month == 3)
{
if (day >= 1 && day <= 31)
{
return true;
}
else
{
return false;
}
}
else if (month == 4)
{
if (day >= 1 && day <= 30)
{
return true;
}
else
{
return false;
}
}
else
{
if (day >= 1 && day <= 15)
{
return true;
}
else
{
return false;
}
}
}
else
{
return false;
}
}https://stackoverflow.com/questions/42566917
复制相似问题