c语言switch语句的用法问题
#include<stdio.h>intmain(){ints=0,n;for(n=0;n<3;n++){switch(s){case0:case1:s+=1;case2...
#include<stdio.h>
int main()
{
int s=0,n;
for(n=0;n<3;n++)
{
switch(s)
{
case 0:
case 1:s+=1;
case 2:s+=2;break;
case 3:s+=3;
default:s+=4;
}
printf("%d\n",s);
}
上面是程序 运行结果为3 10 14 求解过程为什么
} 展开
int main()
{
int s=0,n;
for(n=0;n<3;n++)
{
switch(s)
{
case 0:
case 1:s+=1;
case 2:s+=2;break;
case 3:s+=3;
default:s+=4;
}
printf("%d\n",s);
}
上面是程序 运行结果为3 10 14 求解过程为什么
} 展开
4个回答
展开全部
case语句是执行到break,跳出switch,一开始n=0,s=0,跳到case 0:空语句,继续执行(没有break),到case 1,执行s+=1,s=1,没有break,继续,s+=2,s=3,有break,跳出switch,所以第一个输出的是3,n=1,s=3,执行s+=3,s=6,没有break,继续,执行s+=4,s=10,没break,继续跳出switch,所以第二个输出10,n=2,s=10,跳到default(不满足上述case,跳到这),执行s+=4,s=14,所以第三个是14,n=3跳出循环,结束
展开全部
第1次循环时,进到switch,s=0。由于case 0/case 1没有break;,所以会执行s+=1和s+=2,此时s=3
第2次循环时,进到switch,s=3。由于case 3 没有break;,所以会执行s+=3和s+=4,此时s=10
第3次循环时,进到switch,s=10。走default,s+=4,此时s=14
第2次循环时,进到switch,s=3。由于case 3 没有break;,所以会执行s+=3和s+=4,此时s=10
第3次循环时,进到switch,s=10。走default,s+=4,此时s=14
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
switch语句在没有遇到break时会一直向下执行,一开始S=0,往下执行后s就等于1,再执行case2之后s就等于3
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最关键的是break,自己查下啥意思就明白了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询