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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 20091042219 中级黑马   /  2015-3-24 21:16  /  2438 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

switch语句里可以没有default和break吗

7 个回复

倒序浏览
可以 ,但是不建议舍弃break!
回复 举报
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.         }
复制代码

评分

参与人数 1技术分 +1 收起 理由
万合天宜 + 1 很给力!

查看全部评分

回复 举报
可以的,break表示终止它的一个case     如果没有的话他会继续执行  default没有很正常
回复 举报
不可以  只能存放能自动转为int的基本上数据类型 byte,short   char  jdk7.0后可放String
回复 举报
不可以吧!switch case break这是一组语法 default不要是可以的吧
回复 举报
可以,一般不建议这样写,这样写会发生穿透,曾加阅读的难度
回复 举报
可以                        
回复 举报
您需要登录后才可以回帖 登录 | 加入黑马