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

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;
}
}
...全文
72 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
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

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧