关于C语言switch语句问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于C语言switch语句问题相关的知识,希望对你有一定的参考价值。
int i=3;
switch(i%3)
case 0:printf("0");
case 1:printf("1");
case 2:printf("2");
为什么输出是012 ,而不是0?
switch(i%3)
case 0:
printf("0"); //如果不加break程序会一直向下执行,知道break才跳出
break;
case 1:
printf("1");
break;
case 2:
printf("2");
break
参考技术A 由于C语言的switch语句实质上是一种”基于计算的跳转“,当值计算出来后,它会跳转到相应的分支标号处,执行该处语句,由于分支标号只是switch结构的内部标记,程序控制会忽略下一分支标号,所以需要加上break语句,因为break语句的作用不太规范地说就是:“跳出包含我的结构,执行这个结构后的第一个语句”。
当然,您也可以把"case0:printf("0");"放到分支表的最后一句,而不用break,但最好还是使用break语句为好。
其实这个问题《C语言程序设计现代方法》解释得更清楚,我也是照它意思理解的。 参考技术B int i=3;
switch(i%3)
case 0:
printf("0"); //如果不加break程序会一直向下执行,知道break才跳出
break;
case 1:
printf("1");
break;
case 2:
printf("2");
break;
上面的朋友少加了一个分号啊,说的是对的,遇到break才跳出
参考技术C 没加break,这种情况下顺序往下执行,直到遇见break。 参考技术D 因为你每个case后面都没有跟break跳转语句,要加上这条语句才能不执行其他case,还有就是最好加上一句default这样的话程序比较完整C语言循环问题
对下面这一段看不太懂,求解释
int sum=1000;
while(sum)
switch(sign)
case 'a':
case 'A':arrive(&st1,&p,a);break;
case 'b':
case 'B':leave(&st1,&st2,&p,a);break;
case 'c':
case 'C':exit(OVERFLOW);break;
printf("\n请输入A/B/C 和 车牌号:");
scanf("%c %d",&sign,&a.car_num);
getchar();
sum--;
switch(sign)
提示你输入选择的字母和车牌号:
printf("\n请输入A/B/C 和 车牌号:");
scanf("%c %d",&sign,&a.car_num);
根据你输入的内容,做出相应的处理反应:
switch(sign)
case 'a':
case 'A':arrive(&st1,&p,a);break;
case 'b':
case 'B':leave(&st1,&st2,&p,a);break;
case 'c':
case 'C':exit(OVERFLOW);break;
参考技术B 嵌套循环
外层循环是:
while(sum)
sum--;
直到sum=0为止,跳出循环
内层循环:
switch(sign)
......
当scanf("%c %d",&sign,&a.car_num); //输入内容
getchar(); //获取输入的字符
输入的sign值为a或A时,执行arrive(&st1,&p,a);break; 这两句语句
输入的sign值为b或B时,执行leave(&st1,&st2,&p,a);break; 这两句语句
输入的sign值为c或C时,执行exit(OVERFLOW);break; 这两句语句本回答被提问者采纳 参考技术C 应该是个汽车监控系统吧,输入a,车牌号1代表车牌号1的车来了,输入b,车牌号2代表车牌号2的车走了,输入c,车牌号表示超载了,就是堵车了.记录1000次 参考技术D 对循环部分可以抽出来
int sum = 1000;
while(sum)
sum--;
意思就是sum是循环次数,每次循环减一,直到sum为0 为止
一共循环了1000次 第5个回答 2013-06-27 这上一人循环嵌套语句,
以上是关于关于C语言switch语句问题的主要内容,如果未能解决你的问题,请参考以下文章