有个C程序不知怎么来执行,拜托大家写个过程 谢谢

来源:百度知道 编辑:UC知道 时间:2024/06/14 19:06:24
main()
{ int a=0,i;
for(i=0;i<5;i++)
{ switch (i)
{ case 0:
case 3: a+=2;
case 1:
case 2: a+=3;
default: a+=5;
}
}
printf(“%d\n”,a);
}
麻烦各位帮忙写个过程,这个程序是怎么执行的 谢谢

当i是0时执行
case 0:
case 3: a+=2;
case 1:
case 2: a+=3;
default: a+=5; a为10
当i是1时执行
case 1:
case 2: a+=3;
default: a+=5; a变成18
当i是2时执行
case 2: a+=3;
default: a+=5; a变成26
当i是3时执行
case 3: a+=2;
case 1:
case 2: a+=3;
default: a+=5; a变成36
当i是4时执行
default: a+=5; a变成41

switch只有遇到break才停止
结果运行结果是41

当i是0时执行 case 0:
case 3: a+=2;
case 1:
case 2: a+=3;
default: a+=5;
当i是1时执行case 1:
case 2: a+=3;
default: a+=5;
当i是2时执行case 2: a+=3;
default: a+=5;
当i是3时执行
case 3: a+=2;
case 1:
case 2: a+=3;
default: a+=5;
当i是4时执行
default: a+=5;

switch只有遇到break才停止

首先要知道的是switch中i是多少,进入case子句是不同的,比如i=1,那么就从case1那开始执行程序。如果i不等于0,3,1,2中的任何一个,就去执行default子句。
其次,假设是从case3那开始执行句子,由于执行了case3后的a+=2后没有break,那么程序会继续往下执行到结束那。
理解了上面之后再对照我给出的过程你看看能不能明白。

i=0;a的