菜鸡自学
switch…case的三个规则:
(1)既无成功匹配,又无default字句,那么swtich语句块什么也不做;
(2)无成功匹配,但有default,那么swtich语句块做default语句块的事;
(3)有成功匹配,没有break,那么成功匹配后,一直执行,直到遇到break。
int x,y,z; x=0;y=0; z=1;
switch(z)
{
case 0:y++;
case 1:x++; //无break;
case 2:x++;y++;
case 3:x++;y++
}
printf(" x=%d,y=%d,\n",x,y);
执行case 1 之后的语句,直到遇到break停止,无break所以结果为x=3. y=2
int x,y,z; x=0;y=0; z=1;
switch(z)
{
case 0:y++;
case 1:x++; break;
case 2:x++;y++;
case 3:x++;y++
}
printf(" x=%d,y=%d,\n",x,y);
有break,只执行case 1,结果x=1,y=0
更多详情移步:我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去《switch…case 没有break问题》, 一起来围观吧 https://blog.csdn.net/rammuschow/article/details/107051105?utm_source=app