首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >if-else-else if

if-else-else if
EN

Stack Overflow用户
提问于 2013-03-08 20:54:18
回答 3查看 4.4K关注 0票数 0

我是java的初学者,我正在做一些练习题来温习我的java技能。

编写一个名为season的方法,该方法接受两个整数作为表示月和日的参数,并返回一个指示该月和日的季节的字符串。假设月份被指定为1到12之间的整数(1表示1月,2表示2月,依此类推),并且月份中的日期是1到31之间的数字。

如果日期在12/16和3/15之间,则应返回“冬季”。如果日期在3/16和6/15之间,则应返回"Spring“。如果日期在6/16和9/15之间,则应返回"Summer“。如果日期在9/16和12/15之间,则应返回"Fall“。

代码语言:javascript
复制
public static String season(int month,int day){
   
    if(month>=9 && month<=12 && day==15||day==16){
        return "Fall";
    }
    else if (month>=4 && month<=6 && day==16||day==15){
       return "Spring";
     }
    else if (month>=6 && month<=9 && day==16||day==15){
         return "Summer";
     }
     else {
          return"Winter";

         
      }

  
}

但是我没有得到output.But它似乎是正确的me.Anyone可以告诉我我哪里错了吗?

EN

回答 3

Stack Overflow用户

发布于 2013-03-08 20:56:14

|| has lower precendence than &&,并且您的条件看起来不正确--您可能想要编写如下内容:

代码语言:javascript
复制
if((month == 9 && day >= 16) //September, on or after the 16th
      || month == 10         //or October
      || month == 11         //or November
      || (month == 12 && day <=15)) { //or December, but before or on the 15th
    return "Fall";
}

(对其他条件的注释相同)

你可以通过使用一些hack来缩短它,但可读性可能不是很好(有争议):

代码语言:javascript
复制
int mdd = month * 100 + day; //date in MDD format, for example 507 for May 7th

if (mdd >= 916 && mdd <= 1215) {
    return "Fall";
}
票数 8
EN

Stack Overflow用户

发布于 2013-03-08 21:01:39

你应该试着写这样的代码:

代码语言:javascript
复制
if((month>9 && month<12) || (month==9 && day>=16) || (month==12 && day<=15)){
    return "Fall";
} else if 
    ...
}

优先级也很重要,但你必须考虑你真正想要实现的目标,并根据这一点构建你的表达式。

票数 3
EN

Stack Overflow用户

发布于 2013-11-06 07:05:59

这运行得很好。我纠正了你的一些小错误

代码语言:javascript
复制
public static String season(int month,int day){

   if((month>=9 && month<=12) && (day==15||day==16))
       return "Fall";    
   else{ 
       if ((month>=4 && month<=6) && (day==16||day==15))
           return "Spring";        
       else{
           if ((month>=6 && month<=9) && (day==16||day==15))
               return "Summer";    
           else 
               return"Winter";
       }
   }

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15294465

复制
相关文章

相似问题

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