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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 20091042219 中级黑马   /  2015-3-24 21:16  /  2073 人查看  /  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不要是可以的吧
回复 使用道具 举报
可以,一般不建议这样写,这样写会发生穿透,曾加阅读的难度
回复 使用道具 举报
可以                        
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马