为什么switch中有的case后加break,有的不加?

#include<stdio.h>intc1,c2,c3;voidfun(longn){c1=c2=c3=0;while(n){switch(n%10){case1:c1... #include<stdio.h>
int c1,c2,c3;
void fun(long n)
{
c1=c2=c3=0;
while(n)
{
switch(n%10)
{
case 1:c1++;break;
case 2:c2++;break;
case 3:c3++;
}
n/=10;
}
}
void main()
{
long n=123114350L;
fun(n);
printf("\nThe result :\n");
printf("n=%ld c1=%ld c2=%ld c3=%ld \n",n,c1,c2,c3);
}
n=123114350L,这个L是干什么的,为什么输不出来?
展开
 我来答
anyaofa5f
2014-09-09
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
这样的原因是,有时几种情况需要相同处理,比如:a=1,2,3时要执行a=2,a=0时执行语句a=1,否则执行语句a=3,则程序可以如下:
switch ( a )
{
case 0: a=1; break;
case 1:
case 2:
case 3: a=2; break;
default: a=3; break;
}
打字不易,如满意,望采纳。
追问
把我写的程序中的break去掉为什么不行?会产生什么影响?
匿名用户
2014-09-09
展开全部
加break就跳出不运行下面的case了,如果不加就一直运行到有break
更多追问追答
追问
运行的话不也应该不加1的吗?为什么非要跳出来呢?逻辑上可以,为什么实际上行不通呢?
追答
c++;是先用c再自加一,这里的c1,c2,c3打印后都会加1,跳不跳出来看个人要实现的功能。
L是表明这个数是long int类型的,不写的话默认认为是int
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式