首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取我的方法的返回行错误?

获取我的方法的返回行错误?
EN

Stack Overflow用户
提问于 2017-03-03 06:05:17
回答 4查看 41关注 0票数 0
代码语言:javascript
运行
复制
  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;
    }
  }

获取这些错误:不确定如何修复它们,我返回所有内容。

代码语言:javascript
运行
复制
BoxOffice.java:81: error: missing return statement
    }
BoxOffice.java:85: error: missing return statement
    }
EN

回答 4

Stack Overflow用户

发布于 2017-03-03 06:07:27

编译器不够聪明,无法推断出内部if覆盖了外部if范围内的所有场景。只要改变就好

代码语言:javascript
运行
复制
else if(month == 5) {

代码语言:javascript
运行
复制
else { // month must be 5 here
票数 3
EN

Stack Overflow用户

发布于 2017-03-03 06:09:17

shmosel's answer描述了问题和破坏性最小的修复方法。

就我个人而言,我会把它写成一个switch,并避免编写冗长的if/else语句来检查日期:

代码语言:javascript
运行
复制
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;
}
票数 1
EN

Stack Overflow用户

发布于 2017-03-03 06:12:31

您需要将else if (month == 5)转换为else ....

代码语言:javascript
运行
复制
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;
        }
      }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42566917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档