黑马程序员技术交流社区

标题: switch的疑问 [打印本页]

作者: 刘家斌    时间: 2014-10-13 00:49
标题: switch的疑问
  1. class SwitchDemo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int x=6;
  6.                 switch(x)
  7.                 {
  8.                         default:
  9.                                 System.out.println("a");
  10.                         case 1:
  11.                                 System.out.println("b");
  12.                         case 2:
  13.                                 System.out.println("c");
  14.                         case 3:
  15.                                 System.out.println("d");
  16.                         case 4:
  17.                                 System.out.println("e");
  18.                         case 5:
  19.                                 System.out.println("f");
  20.                 }
  21.         }
  22. }
复制代码
这段代码为什么输出语句都执行了
作者: Quasimodo    时间: 2014-10-13 01:24
本帖最后由 Quasimodo 于 2014-10-13 01:26 编辑

先进行判断,因为X=6,所以没有符合的  就会去执行default语句。     执行完以后,如果没有碰到break就会继续往下执行而不再进行判断,每条语句都执行直到碰到break或者}才结束   所以输出语句都会执行
作者: 香草芭芙    时间: 2014-10-13 01:40
x = 6 执行default , case 和 default里没有 break , 全都执行下来了.
作者: HM2014nuli    时间: 2014-10-13 06:43
楼主你好,你没发现你所有case语句和default都没加break吗?输出自然都是打印语句
作者: 康师傅-蛋黄派    时间: 2014-10-13 08:02
一楼正解
作者: treanow    时间: 2014-10-13 08:18
case没有break
作者: 无知的xiaopihai    时间: 2014-10-13 08:58
首先你要先明白什么叫做switch()语句,然后看看每条case后面有没有break;语句存在,若是没有就一直往下执行,若是存在break()语句就跳出循环结束。
作者: jtshawn    时间: 2014-10-13 09:31
没有break
作者: new999    时间: 2014-10-13 09:38
break;~~~~~
作者: chenglove1201    时间: 2014-10-13 09:47
没有break就会执行
作者: weiyi    时间: 2014-10-13 10:05
没有break
作者: 面具猴    时间: 2014-10-13 10:39
语句后面都要加上break;否则其后面的语句就执行了,如果后面的语句还没加break;那它后面的就执行了。总之每个case后都要加break;default 放在最后是其他情况都不满足的时候执行的语句
作者: run_wind    时间: 2014-10-13 12:00
哥哥,你的break呢。厚颜无耻的贴上我刚写的,我也刚学到这里,嘿嘿

  1. //需求1:利用swicth语句来写一个简易计算器。
  2. //需求2:利用swicth语句写一个季节判断程序。
  3. class  switchtest
  4. {
  5.         public static void main(String[] args)
  6.         {
  7.                 //简易计算器
  8.                 char ch='+';
  9.                 int a=3,b=4;
  10.                 switch(ch)
  11.                 {
  12.                         case '+':
  13.                                 System.out.println(a+"+"+b+"="+(a+b));
  14.                         break;
  15.                         case '-':
  16.                                 System.out.println(a+"-"+b+"="+(a-b));
  17.                         break;
  18.                         case '*':
  19.                                 System.out.println(a+"*"+b+"="+(a*b));
  20.                         break;
  21.                         case '/':
  22.                                 System.out.println(a+"/"+b+"="+(a/b));
  23.                         break;
  24.             default:
  25.                 System.out.println("Hello World!");
  26.                         break;
  27.                 }
  28.                 //季节判断  3,4,5春季,6,7,8夏季,9,10,11秋季,12,1,2冬季
  29.                 int x=7;
  30.                 switch(x)
  31.                 {
  32.                         case 3:
  33.                         case 4:
  34.                         case 5:
  35.                                 System.out.println(x+"月属于春季");
  36.                         break;
  37.                         case 6:
  38.                         case 7:
  39.                         case 8:
  40.                                 System.out.println(x+"月属于夏季");
  41.                         break;
  42.                         case 9:
  43.                         case 10:
  44.                         case 11:
  45.                                 System.out.println(x+"月属于秋季");
  46.                         break;
  47.                         case 12:
  48.                         case 1:
  49.                         case 2:
  50.                                 System.out.println(x+"月属于冬季");
  51.                         break;
  52.                     default:
  53.                 System.out.println("Hello World!");
  54.                         break;
  55.                 }
  56.         }
  57. }
复制代码

作者: 戏言丶    时间: 2014-10-13 12:32
楼上的说的都不错,来复习一下




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