黑马程序员技术交流社区

标题: 有关switch语句的问题? [打印本页]

作者: 20091042219    时间: 2015-3-24 21:16
标题: 有关switch语句的问题?
switch语句里可以没有default和break吗
作者: bankmycard    时间: 2015-3-24 21:20
可以 ,但是不建议舍弃break!
作者: 夜班心桥    时间: 2015-3-24 21:34
switch中可以不写default和break,但是会发生穿透,建议都写上。比如:
  1. /*output: 最后执行结果  y是7,执行过程如下:
  2.                 首先会和5进行匹配,不成功。再继续向下执行,和6进行匹配,不成功。最后,
  3.                 再执行default,由于default中没有break,所以程序继续顺序向下执行。
  4.                 分别执行case 5 下的y++,再执行 case6下的y++, 再退出switch结构。
  5.         */
  6.         private static void method1()
  7.         {
  8.                 int x=3;
  9.                 int y=4;

  10.                 switch(x)
  11.                 {
  12.                         default:
  13.                                 y++;
  14.                             System.out.println("default: " + y);
  15.                         case 5:
  16.                                 y++;
  17.                                 System.out.println("case 5:" + y);
  18.                         case 6:
  19.                                 y++;
  20.                                 System.out.println("case 6: " + y);
  21.                 }

  22.                 System.out.println(y);
  23.         }
复制代码

作者: ruchsky    时间: 2015-3-25 14:37
可以的,break表示终止它的一个case     如果没有的话他会继续执行  default没有很正常
作者: android-liu    时间: 2015-3-25 14:43
不可以  只能存放能自动转为int的基本上数据类型 byte,short   char  jdk7.0后可放String
作者: 邓熊财    时间: 2015-3-25 16:24
不可以吧!switch case break这是一组语法 default不要是可以的吧
作者: 福娃51zx    时间: 2015-3-25 18:19
可以,一般不建议这样写,这样写会发生穿透,曾加阅读的难度




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