c语言这个语句运行的结果

来源:百度知道 编辑:UC知道 时间:2024/05/16 19:44:52
int x=1, y=0;
switch (x)
{ case 1:
switch (y)
{ case 0: printf(“**1**\n”); break;
case 1: printf(“**2**\n”); break;
}
case 2: printf (“**3**\n”);
}
还有这句
int x=1, y=0;
switch (x)
{ case 1:
switch (y)
{ case 0: printf(“**1**\n”); break;
case 1: printf(“**2**\n”); break;
}
case 2: printf (“**3**\n”);
}

switch()
{
。。。。。。。
}中的每个case语句如果没有break那么在执行某个语句后再他之后的每个case都需要执行,否则就不需要。

打印的是
**1**
**3**
x=1 就运行case 1:后面的语句 switch(y) 而y=0,则运行case 0,打印**1**,break,退出switch(y)
然后往下运行switch(x) 里面的case 2:后面的语句

第一个打印如下:
**1**
**3**
第二个不是和第一个一样吗????
注意break跳出的是内层的switch语句,外层的switch case则按顺序执行。

打印的是
**1**
**3**
x=1 就运行case 1:后面的语句 switch(y) 而y=0,则运行case 0,打印**1**,break,退出switch(y)
然后往下运行switch(x) 里面的case 2:后面的语句

从表面上看,仅仅看结果的话,会打印:**1**
但是这个程序有问题啊,switch()一般不会单独使用的,会和while一起使用的