注册 登录
编程论坛 JAVA论坛

关于Switch语句,求大神解答!感谢!

cairunbo 发布于 2016-03-14 17:18, 3248 次点击
public class HelloWorld {
public static void main(String[] args) {
int num=1;
switch(num){
case 1:
System.out.println("1");
case 2:
System.out.println("2");
break;
case 3:
System.out.println("3");
break;
default:
System.out.println("4");
    }
}
小弟学习Java时遇到的问题,:关于上述代码,如果把case1后面的break去掉,我能理解case1的语句能执行,到case2后面的break终止,但是switch中num的值和case2后面的值不匹配,为什么会执行case2后面的语句呢?
十分感谢帮忙的大神!
8 回复
#2
grmmylbs2016-03-14 17:40
case 语句相当于一个标志,switch与之判断相等后跳到相应行往下执行,并且只判断一次。如果没有打断(break、return或switch结束)的话就会一直往下执行。
#3
sweetLR2016-03-14 20:18
2种 :如果num没有找到case 后面的值,会执行到default  ,如果num 和case 后面的值对应了 则会执行这条语句 并且看后面是否有break;终止 没有继续  有就结束了不再执行
#4
小二狗2016-03-16 21:33
因为当它符合1时,它就会一直往下传递,直到遇到break,就因为你在case 1那没有break,所以它会往下一直执行,假如case 2那没有break,它会一直执行到结束,就是case 3那。既然你是新学,建议你看一下break和continue的区别。对了,你的代码有错误,最后差一个花括号。

[此贴子已经被作者于2016-3-16 21:34编辑过]

#5
FeastAw2016-03-17 00:00
赞同楼上
#6
cairunbo2016-03-19 10:43
回复 2楼 grmmylbs
感谢!
#7
cairunbo2016-03-19 10:43
回复 4楼 小二狗
感谢!
#8
cairunbo2016-03-19 10:43
回复 3楼 sweetLR
感谢!
#9
a10436352232016-03-21 17:46
我的理解是,switch只匹配一次num,匹配到了就执行,直到break才停止
1