A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class IfTest
{
        public static void main(String[ ]args)
                {
                int month=-1;//定义变量
                        {
                                //判断语句
                                if(month>=3&&month<=5)
                                        System.out.println(+month+"月是春季");
                            else if (month>=6&&month<=8)
                                        System.out.println(+month+"月是夏季");
                                else if (month>=9&&month<=11)
                                        System.out.println(+month+"月是秋季");
                                else if (month==12&&month<=2)
                                        System.out.println(+month+"月是冬季");
                                else
                                        System.out.println(+month+"月不存在");
                       
                        }
            }
}
?如果month=-1的话输出的还是-1月不存在,可是他的范围是在冬季的判断范围内的,为什么会这样?

4 个回复

倒序浏览
楼主可以先对month进行判断0   month>12 || month<1 就输出月份不存在哦呵呵 帮您改后的代码是这样子的
您可以参照下呵呵给您写了两个方法 嘿嘿 对了
         &&(短路&)
                        &&符号的特点:当左边为false,右边是不参与运算的。
                        &符号的特点:无论左边结果是什么,右边都运算,简单记录就是单&两边都运算。
                ||(短路|)
                        ||符号的特点:当左边为true时,右边不参与运算。
                        |符号的特点:两边都参与运算。
                                               
                                //1,定义变量。
                int month = 1;

                //2,判断。
                if(month>12 || month<1)
                        System.out.println(month+"月是不存在的");
                else if(month>=3 && month<=5)
                        System.out.println(month+"月是春季");
                else if(month>=6 && month<=8)
                        System.out.println(month+"月是夏季");
                else if(month>=9 && month<=11)
                        System.out.println(month+"月是秋季");
                else
                        System.out.println(month+"月是冬季");
               
                /*
第二种方法:                if(month==3 || month==4 || month==5)
                                                System.out.println(month+"月是春季");
                                        else if(month==6 || month==7 || month==8)
                                                System.out.println(month+"月是夏季");
                                        else if(month==9 || month==10 || month==11)
                                                System.out.println(month+"月是秋季");
                                        else if(month==12 || month==1 || month==2)
                                                System.out.println(month+"月是冬季");
                                        else
                                                System.out.println(month+"月是不存在的");

评分

参与人数 1黑马币 +2 收起 理由
熊雪莲 + 2 赞一个!

查看全部评分

回复 使用道具 举报
问题出在下面:
else if (month==12&&month<=2)
                                         System.out.println(+month+"月是冬季");
                                 else
                                         System.out.println(+month+"月不存在");
我学到的是:
      &&:短路与,当左面为false时,右面是不参与运算的,
      &:与,无论左面是否为false,右面都参与运算。
      ||:短路或,当左面为true时,右面是不参与运算的。
      |:或,无论左面是否为true,右面都参与运算。
  可以对该代码做一下修改。
      第一种方法:
            if(month>12||month<1)
                 System.out.println(+month+"月不存在");
                              else if(month>=3&&month<=5)
                             System.out.println(+month+"月是春季");
                             else if (month>=6&&month<=8)
                                         System.out.println(+month+"月是夏季");
                                 else if (month>=9&&month<=11)
                                         System.out.println(+month+"月是秋季");
                                 else  
                                         System.out.println(+month+"月是冬季");
                  第二种方法:
                    if(month>=3&&month<=5)
                             System.out.println(+month+"月是春季");
                               else if (month>=6&&month<=8)
                                         System.out.println(+month+"月是夏季");
                                 else if (month>=9&&month<=11)
                                         System.out.println(+month+"月是秋季");
                                 else if(month==12||month==1||month==2)
                         System.out.println(+month+"月是冬季");
                          else
                                      System.out.println(+month+"月不存在");
                                                      

评分

参与人数 1黑马币 +2 收起 理由
熊雪莲 + 2

查看全部评分

回复 使用道具 举报
陈世涛 发表于 2012-7-16 08:56
问题出在下面:
else if (month==12&&month12||month=3&&month=6&&month=9&&month=3&&month=6&&month=9&&mo ...

呵呵,很全面哦~最近在上基础班,论坛没有时间来逛了,回复晚了
回复 使用道具 举报
★╃小胖╃☆ 发表于 2012-7-12 19:42
else if (month==12&&month=1的条件加上就可以了

谢谢~确实问题出在这里了,看来运算符我弄的还是不透啊~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马