C语言:读程序题

来源:百度知道 编辑:UC知道 时间:2024/06/25 08:15:17
main()
{
int a,i;a=0;
for(i=1;i<5;i++)
{
swich (i)
{
case 0:
case 3:a+=2;
case 1:
case 2:a+=3;
default:a+=5;
}
}
printf("%d\n",a);
}
程序的输出结果是31

能办我讲解一下这道题吗,还有题中switch,case各是什么意思
其中a+=2那些是什么意思呢?a是怎样修改,变成31的?

switch语句 多分支选择语句
格式:
switch(表达式A)
{ case 常量表达式1:语句1
case 常量表达式2:语句2
case 常量表达式3:语句4
.
.
.
case 常量表达式n:语句n
default(这是”否则“的意思): 语句n+1}

读法是:表达式A= 常量表达式X 就执行语句X 同时有一点注意的 如:满足表达式2 那么直接执行语句2 语句1不执行 但语句3到n+1也都要执行一次 这就是switch语句的一个问题(我认为这是一个bug) 为了避免这个问题 一般在语句后面再加个break语句 如:case 常量表达式2:a++;break; 这样后面的就不执行了

所以case意思是:“当等于。。。的时候”

这段程序的意思是:i从1到4 每次i满足case后哪个表达式就执行哪个语句对a修改

a+=2 等于a=a+2
这里的过程是a=3+5 +3+5 +2+3+5 +5=31