关于switch语句的一个问题
#include <stdio.h>int main()
{
int x = 0,y = 2,z = 3;
switch (x)
{
case 0 :switch(y == 2)
{
case 1:printf("*");break;//根据检验输出了这个case1和下一个default,但是我不能理解为什么y==2 会和case1进行匹配
case 2:printf("%");break;
}
case 1 :switch(z)//还有为什么还会执行这个case1?
{
case 1:printf("$");
case 2:printf("*");break;
default :printf("#");//和这个default
}
}
return 0;
} 本帖最后由 傻狍子嗷 于 2019-12-24 21:03 编辑
#include <stdio.h>
int main()
{
int x = 0,y = 2,z = 3;
switch (x)
{
case 0 :
switch(y == 2)
//此处y==2是判断y是否等于2,你这里y是等于
2,所以y==2的结果是1(即为真)。
{
case 1:
printf("*");
break;//根据检验输出了这个case1和下一个default,但是我不能理解为什么y==2 会和case1进行匹配
// 如上所述,此处与case 1配对。
case 2:
printf("%");
break;
}
case 1 :
switch(z)//还有为什么还会执行这个case1?
// 运行后发现不会执行case1,因为没有匹配项,所以执行default。
{
case 1:
printf("$");
case 2:
printf("*");
break;
default :
printf("#");//和这个default
}
}
return 0;
}
另外,以后发帖记得加code
页:
[1]