
为什么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是干什么的,为什么输不出来? 展开
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是干什么的,为什么输不出来? 展开
2个回答
展开全部
这样的原因是,有时几种情况需要相同处理,比如: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;
}
打字不易,如满意,望采纳。
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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |