黑马程序员技术交流社区

标题: 帮忙看一下 if ~else 语句循环运行时的问题 [打印本页]

作者: 熊雪莲    时间: 2012-7-12 17:52
标题: 帮忙看一下 if ~else 语句循环运行时的问题
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月不存在,可是他的范围是在冬季的判断范围内的,为什么会这样?
作者: 李志群    时间: 2012-7-12 21:55
楼主可以先对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+"月是不存在的");

作者: 陈世涛    时间: 2012-7-16 08:56
问题出在下面:
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+"月不存在");
                                                      
作者: 熊雪莲    时间: 2012-7-16 23:56
陈世涛 发表于 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-16 23:58
★╃小胖╃☆ 发表于 2012-7-12 19:42
else if (month==12&&month=1的条件加上就可以了

谢谢~确实问题出在这里了,看来运算符我弄的还是不透啊~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2