c语言switch语句问题

[复制链接]
查看11 | 回复5 | 2008-8-15 11:24:36 | 显示全部楼层 |阅读模式
main()
{int a=16,b=21,m=0;
switch (a%3)

{case 0:m++;break;

case 1:m++;

switch (b%2)

{default:m++;

case 0: m++;break;

}

}printf("%d\n",m);
}
求输出的数值
3是对的。。为蛇么??为什么?请赐教


回复

使用道具 举报

千问 | 2008-8-15 11:24:36 | 显示全部楼层
3先是16%3=1,执行case 1:的代码,m++为1,然后switch(b%2),21%2=1,所以执行default的语句,m又++,得到2,但default里面没写break;所以继续执行case 0的语句,m又++,得到3。
回复

使用道具 举报

千问 | 2008-8-15 11:24:36 | 显示全部楼层
猜 2
回复

使用道具 举报

千问 | 2008-8-15 11:24:36 | 显示全部楼层
m=2 对么
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行