黑马程序员技术交流社区

标题: break语句问题? [打印本页]

作者: strongmanzxh    时间: 2016-4-13 23:49
标题: break语句问题?
是每个case 后面都必须要有break语句嘛?
作者: dxw    时间: 2016-4-14 00:11
本帖最后由 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语句

作者: zapple926    时间: 2016-4-14 01:58
不加break 会出现case 穿透 ,楼上正解
作者: 长衫造纸农_    时间: 2016-4-14 08:48
楼上正解~
作者: jialianghao    时间: 2016-4-14 10:08
不是的,整个switch语句都可以没有break的,如果都没有break会以最后一个挨着大括号的语句结束。
作者: NeverBack    时间: 2016-4-14 11:51
case穿透太神奇

作者: Dencent    时间: 2016-4-14 15:11
当然不是
作者: lidandan    时间: 2016-4-14 16:07
不是呀,想跳出就用break

作者: 小海龙    时间: 2016-4-15 21:02
看需求,呵呵
作者: aweilovemusic    时间: 2016-4-15 21:05
不加case会造成穿透.在遇到下一个break前,继续自上而下执行代码.
最后一个break可加可不加
作者: 15614014298    时间: 2016-4-15 22:32
不是必须的。break是结束switch,如果不加break会一直执行下去,直到所以case都执行完
作者: 丶半度微凉    时间: 2016-4-15 22:40
是的,每个case后面都有加break
作者: Q灬先生    时间: 2016-4-15 23:39
跳出就break   注意case穿透
作者: xiaoxiqq    时间: 2016-4-16 00:55
不是必须要加,不加的话,会按顺序执行下面的case,加了的话,执行当前case之后直接跳出




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