c语言中switch语句的用法问题

来源:百度知道 编辑:UC知道 时间:2024/06/15 19:59:39
#include<stdio.h>
void main()
{
int a=15,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);
}
请从switch(a%3)开始,逐条说明是什么意思,从这一条开始向下我一点儿也看不懂.

百度知道不支持缩进,看代码累

switch(a%3)
{
``case 0: //当(a%3)==0时执行下面的语句直到遇到break或return
````m++;
````break;
``case 1: //当(a%3)==1时执行下面的语句直到遇到break或return
````m++;
``````switch(b%2) // 此switch在m++执行后继续执行
``````{
````````case 0: //当b%2==0时执行下面的语句直到遇到break或return
``````````m++;
``````````break;
````````default: //当b%2 !=0时执行下面的语句直到遇到break或return或后面没语句了自然结束此switch
``````````m++;
``````}
}

先说一下switch()的用法
相信你看完就能看明白这道题了。
1.switch()是多分支选择语句
2.switch()括号里的表达式可以为任何类型,此题就是看其余数的值与下面 的 哪条case语句对应。
3.与哪条case语句对应上,就执行那条语句,直到遇到break语句退出本条 switch()语句结构,否则接着执行下面的case语句,直到遇到break或者执行完最后一条case语句结束。
4.这里的default与case语句一样,你可以把它看成是case其他,所以可以放到任何其他的case位置。
5.当然最后一条语句可以不用break,因为已经执行到最后一条,自动就退出switch().

至于m++;你可以这样理解,m在前,先用m的值完成本条语句,++在后,那么就完成上条语句后再自加1,然后开始下条语句的执行。
希望能帮到你。

switch(a%3) //比较a%3的余数,这里a=15,除3余数为0;
{
case 0:m+