黑马程序员技术交流社区

标题: 一道容易答错的题,看看你是怎么答的 [打印本页]

作者: sansu    时间: 2016-2-26 21:27
标题: 一道容易答错的题,看看你是怎么答的
下面程序执行的结果是?()
int x=2,y=3;
switch(x)
{
        default:
                y++;
        case 3:
                y++;
        case 4:
                y++;
}
System.out.println("y="+y);
A.  3
B.  4
C.  5
D.  6

作者: 陌城    时间: 2016-2-26 21:53
D  这种题就看default在哪和有没有break
作者: zzh111    时间: 2016-2-26 22:33
case穿透,因为没有break。
作者: cumtbao    时间: 2016-2-26 23:35
D,因为case后没用2,因而代码从头执行。当遇到break或代码执行到最后,才会退出switch语句,因而选6
作者: WalkingMoon    时间: 2016-2-26 23:43
先匹配case,匹配不到case,走default,在从上往下执行,y = 6;
作者: docwei    时间: 2016-2-26 23:44
选D啊啊啊啊啊
作者: cc19930915    时间: 2016-2-27 00:10
D   没有break就穿透了
作者: sayhellotowj    时间: 2016-2-27 00:27
答案为D,case有穿透效果
作者: huang_bing_hua    时间: 2016-2-27 08:33
sansu 发表于 2016-2-26 21:27
下面程序执行的结果是?()
int x=2,y=3;
switch(x)

先匹配case,匹配不到case,走default,由于没有break,发生case穿透,y = 6;
作者: 超人d咖啡也加糖    时间: 2016-2-27 11:40
A.3(凑字符)
作者: 超人d咖啡也加糖    时间: 2016-2-27 11:42
超人d咖啡也加糖 发表于 2016-2-27 11:40
A.3(凑字符)

我错了,各位请无视。。。。
作者: flyhui    时间: 2016-2-27 15:49
case穿透,选D
作者: 超人d咖啡也加糖    时间: 2016-2-28 10:06
超人d咖啡也加糖 发表于 2016-2-27 11:42
我错了,各位请无视。。。。

嗯嗯
作者: oassuperhan    时间: 2016-2-28 15:36
D,视频里的原题,表示无压力.x=2,首先寻找case 2:没有就默认执行default,之后因为没有break,一路击穿,一直运行到底
作者: 斯麦尔端    时间: 2016-2-28 19:05
D,今天刚做了
作者: sansu    时间: 2016-3-7 22:49
陌城 发表于 2016-2-26 21:53
D  这种题就看default在哪和有没有break

先匹配case,未匹配上执行defaul后的语句,   defaul语句后没break,发生穿透继续运行,直到遇到大括号结束!
作者: 公孙国禄    时间: 2016-3-8 00:07
选择d 因为没有break 所以从default:开始穿透y++三次





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2