标题:关于Switch语句,求大神解答!感谢!
只看楼主
cairunbo
Rank: 1
来 自:浙江
等 级:新手上路
帖 子:11
专家分:0
注 册:2016-3-7
结帖率:66.67%
已结贴  问题点数:20 回复次数:8 
关于Switch语句,求大神解答!感谢!
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后面的语句呢?
十分感谢帮忙的大神!
搜索更多相关主题的帖子: default 学习Java public 
2016-03-14 17:18
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
得分:5 
case 语句相当于一个标志,switch与之判断相等后跳到相应行往下执行,并且只判断一次。如果没有打断(break、return或switch结束)的话就会一直往下执行。
2016-03-14 17:40
sweetLR
Rank: 2
等 级:论坛游民
帖 子:9
专家分:23
注 册:2016-3-14
得分:5 
2种 :如果num没有找到case 后面的值,会执行到default  ,如果num 和case 后面的值对应了 则会执行这条语句 并且看后面是否有break;终止 没有继续  有就结束了不再执行
2016-03-14 20:18
小二狗
Rank: 3Rank: 3
来 自:南京
等 级:论坛游侠
威 望:4
帖 子:32
专家分:111
注 册:2016-3-14
得分:5 
因为当它符合1时,它就会一直往下传递,直到遇到break,就因为你在case 1那没有break,所以它会往下一直执行,假如case 2那没有break,它会一直执行到结束,就是case 3那。既然你是新学,建议你看一下break和continue的区别。对了,你的代码有错误,最后差一个花括号。

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


以不专业但努力的态度得到最专业的认知
2016-03-16 21:33
FeastAw
Rank: 1
等 级:新手上路
帖 子:6
专家分:5
注 册:2016-3-8
得分:5 
赞同楼上
2016-03-17 00:00
cairunbo
Rank: 1
来 自:浙江
等 级:新手上路
帖 子:11
专家分:0
注 册:2016-3-7
得分:0 
回复 2楼 grmmylbs
感谢!

Fighting!
2016-03-19 10:43
cairunbo
Rank: 1
来 自:浙江
等 级:新手上路
帖 子:11
专家分:0
注 册:2016-3-7
得分:0 
回复 4楼 小二狗
感谢!

Fighting!
2016-03-19 10:43
cairunbo
Rank: 1
来 自:浙江
等 级:新手上路
帖 子:11
专家分:0
注 册:2016-3-7
得分:0 
回复 3楼 sweetLR
感谢!

Fighting!
2016-03-19 10:43
a1043635223
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-1-17
得分:0 
我的理解是,switch只匹配一次num,匹配到了就执行,直到break才停止
2016-03-21 17:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-462487-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.466701 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved