nba巨星詹姆斯图片:一道简单的C题目
来源:百度文库 编辑:查人人中国名人网 时间:2024/10/05 14:57:26
下列程序的输出结果是______。
#include <stdio.h>
main()
{ int x = 1, y = 0, a = 0, b = 0;
switch (x)
{ case 1:
switch(y)
{ case 0: a++; break;
case 1: b++; break; }
case 2: a++; b++; }
printf("a=%d,b=%d\n", a, b);}
a=2,b=1
我不太理解,不知道为什么连case2也执行了,前面不是有break吗
请解释一下,谢谢!!
#include <stdio.h>
main()
{ int x = 1, y = 0, a = 0, b = 0;
switch (x)
{ case 1:
switch(y)
{ case 0: a++; break;
case 1: b++; break; }
case 2: a++; b++; }
printf("a=%d,b=%d\n", a, b);}
a=2,b=1
我不太理解,不知道为什么连case2也执行了,前面不是有break吗
请解释一下,谢谢!!
你仔细看一下这个括号
break只是跳出第一个case1
要全部跳出的话就要在case 1: b++; break; }后面再加个break
注意switch(y)的括号范围是两句,后面的case2不在范围内了,而switch(x)的case 1 后面没有break,因此后面的也要执行。
因为第一次执行内层SWITCH的CASE1即A++后跳出来再执行外层SWITCH的CASE2所以A=2,B=1.
break 是结束switch(y) 和 return 不一样。