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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© strongmanzxh 中级黑马   /  2016-4-13 23:49  /  939 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

是每个case 后面都必须要有break语句嘛?

13 个回复

倒序浏览
本帖最后由 dxw 于 2016-4-14 00:12 编辑

不一定①不加case会造成穿透.在遇到下一个break前,继续自上而下执行代码.

有时候可以利用这一特性
例如手动输入一个数判断是什么季节
x=sc.nextInt();
switch(x){
case 3:
case 4:
case 5:System.out.println("您输入的季节是春季");break;

case 6:
case 7:
case 8:System.out.println("您输入的季节是夏季");break;

case 9:
case 10:
case 11:System.out.println("您输入的季节是秋季");break;

case 12:
case 1:
case 2:System.out.println("您输入的季节是冬季");break;

default:System.out.println("您输入的数字有误");

}

如果输入3,在遇到case 5的break之前不会跳出switch语句.

②switch语句体最后一行如果没有添加break,系统会自动添加.所以,最后一个case语句可加可不加.效果一样

int x=3;
switch(x){
case 1:System.out.println(1);
case 2:System.out.println(2);
case 3:System.out.println(3);
}
输出3,退出switch语句
回复 使用道具 举报
不加break 会出现case 穿透 ,楼上正解
回复 使用道具 举报
楼上正解~
回复 使用道具 举报
不是的,整个switch语句都可以没有break的,如果都没有break会以最后一个挨着大括号的语句结束。
回复 使用道具 举报
case穿透太神奇
回复 使用道具 举报
当然不是
回复 使用道具 举报
不是呀,想跳出就用break
回复 使用道具 举报
看需求,呵呵
回复 使用道具 举报
不加case会造成穿透.在遇到下一个break前,继续自上而下执行代码.
最后一个break可加可不加
回复 使用道具 举报
不是必须的。break是结束switch,如果不加break会一直执行下去,直到所以case都执行完
回复 使用道具 举报
是的,每个case后面都有加break
回复 使用道具 举报
跳出就break   注意case穿透
回复 使用道具 举报
不是必须要加,不加的话,会按顺序执行下面的case,加了的话,执行当前case之后直接跳出
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马