黑马程序员技术交流社区
标题:
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