黑马程序员技术交流社区
标题:
能看出这段代码 输出结果是多少吗
[打印本页]
作者:
Sheng.cn
时间:
2015-5-1 23:29
标题:
能看出这段代码 输出结果是多少吗
本帖最后由 Sheng.cn 于 2015-5-1 23:31 编辑
class Test
{
public static void main(String[] args)
{
int x =5;
switch(x++)
{
default:
System.out.println("a:"+x);
case 6:
System.out.println("b:"+x++);
case 7:
System.out.println("c:"+x);
case 8:
System.out.println("d:"+x);
}
}
}
作者:
魔心邪
时间:
2015-5-2 01:15
受教了,大大的有啊
作者:
wkz_crystal
时间:
2015-5-2 01:23
呵呵,结果就是全部都会输出:a:6 b:6 c:7 d:7,因为default中没有break语句,会一直执行下去!
作者:
Demomiku
时间:
2015-5-2 09:15
a:6
b:6
c:7
d:7
作者:
米江波
时间:
2015-5-2 09:55
为什么我看不出来是6.6.7.7啊 我看的是6.7.7.7
作者:
Dylon
时间:
2015-5-2 10:11
米江波 发表于 2015-5-2 09:55
为什么我看不出来是6.6.7.7啊 我看的是6.7.7.7
x++语句会先把x的值赋给输出判断和输出语句,然后再执行x+1;所以switch判断语句接收的是x的值,之后x的值变为6,case语句中没有5这个数值,所以直接执行defaut语句,输出a:6;由于语句中没有break语句,所以程序会继续往下执行,case6语句中,同样x++先传递x的数值,然后再执行自加,所以这句输出的是b:6。
作者:
爆炸头
时间:
2015-5-2 10:15
a6b6c7c7~~~~~
作者:
guoyangpeng
时间:
2015-5-2 10:38
a:6
b:6
c:7
d:7
作者:
yuanhnu
时间:
2015-5-2 11:07
a:6
b:6
c:7
d:7
从上往下一直执行下去,因为没有遇到break,直至程序末尾结束
作者:
zy18692243338
时间:
2015-5-2 14:03
6 6 7 7
作者:
Wilsoncyf
时间:
2015-5-2 16:13
学习啦,嘿嘿
作者:
lshaizj
时间:
2015-5-2 16:25
输出 6 6 7 7
作者:
横看成岭侧成锋
时间:
2015-5-2 16:30
好,学习了
作者:
exist
时间:
2015-5-2 16:38
6 6 7 7 {:2_35:}
作者:
Cat
时间:
2015-5-2 19:10
学习一下~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2