您的位置:首页 > 编程语言 > Java开发

[JAVA]你见过这样的switch吗?

2008-03-10 21:54 316 查看
下面这段代码:

int i = 20;

switch(i){

default:

System.out.println("default");

case 1:

System.out.println("1");

break;

case 2:

System.out.println("2");

break;

case 3:

System.out.println("3");

break;

}

我惊讶地发现它竟然输出了如下结果:

default

1

还是break语句的问题, 当程序在case中找不到匹配项的时候会跳转到default语句块执行, 由于default语句块里面没有break的跳出语句, 程序将继续向下执行, 直到遇到一个break, 虽然我们平时我们做项目的时候有严格的编码规范, 一般不会遇到诸如此类的问题, 但是我在面试的时候就遇到了, 而且当时心一慌就答错了, 当然甚至还怀疑这是否能编译通过.

不过在.NET中强制要求在default的末尾追回break语句, 所以这个问题在.NET平台下不会出现.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: