请问为什么结果不是想象中的那样?

ycfnlxx 2010-09-16 05:01:50
public static void main(String[] args)
{
test(1);
test(2);
test(3);
test(4);
}
public static void test(int a)
{
switch (a)
{
case 1:
case 2:
System.out.println("OK2");
break;
case 3:
System.out.println("OK3");
break;
default:
System.out.println("default");
break;
}
}
...全文
50 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ycfnlxx 2010-09-16
好的,结帖,把case想象成if了!
回复
welcome__fei 2010-09-16
[Quote=引用 2 楼 ituren 的回复:]
当case 条件后没有加上break;
会忽略其他case判断,继续执行下去,直到碰到break;
所以test(1)输出ok2
其他的应该没问题吧....
[/Quote]

顶!
回复
ChDw 2010-09-16
输出当然是

OK2
OK2
OK3
default

啊,有什么问题?

你觉得case 1这里不对?

case 1:
case 2:
System.out.println("OK2");
break;

表示当1或者2的时候都打印OK2,如果你意思是当1的时候不打印,应该是
case 1:
break;

case 2:
System.out.println("OK2");
break;
回复
nizhicheng 2010-09-16
因为 CASE 1 没BREAK
回复
ituren 2010-09-16
当case 条件后没有加上break;
会忽略其他case判断,继续执行下去,直到碰到break;
所以test(1)输出ok2
其他的应该没问题吧....
回复
andesen 2010-09-16
想象中的结果是哪样呢?
回复
ycfnlxx 2010-09-16
结果为:
OK2
OK2
OK3
default
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2010-09-16 05:01
社区公告
暂无公告