请问高手 如何理解这道题 C语言

来源:百度知道 编辑:UC知道 时间:2024/06/04 21:32:31
main()
int a=2,int x=1,y=0,a=0,b=0;
switch(x)
{case1
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
case3:a++;b++;
}printf("a=%d,b=%d,a,b,);
}
(2,1)
问题:
既然X=1,外层SWITCH(X)为什么还要执行CASE2呢

在看这题
x=0;y=2;z=3;
switch(x)
{
case1:printf("*");break;
case2:printf("%");break;
}
case1 :switch(z)
{case1:printf("$");break;
case2:printf("*");break;
default:printf("#");
}
(* ,#)

问题:既然X=0,外层SWITCH(X)为什么还要执行CASE1呢

可能是基本概念没搞懂 望指点 谢谢拉

case只是相当于一个入口,不想if那样,只要if执行了else就不会执行
case作为入口,如果不碰到break是不会退出的
例一中的case 1的结构是
switch(y)
{case0:a++;break;
case1:b++;break;
}
并没有break,所以就继续执行了,如果改成这样,就不会继续了
switch(y)
{case0:a++;break;
case1:b++;break;
}break;

例二,看看打错什么东西了,结构就不对

switch(x)
{
case1:printf("*");break;
case2:printf("%");break;
} 是一部分

case1 :switch(z)
{case1:printf("$");break;
case2:printf("*");break;
default:printf("#");
} 和上面接不上