C语言 一个关于switch循环语言的初级问题

作者&投稿:定乖 (若有异议请与网页底部的电邮联系)
C语言switch循环题就解答~

很简单,for循环里面嵌套一个switch语句,所以我们从for循环开始看
首先k的初值是5,然后每次循环递减1(k--),所以k在6次循环中的取值分别为:
5, 4, 3, 2, 1, 0
接下来把这6个值按从左到右的顺序代入switch语句中,就和解方程一样:
1、k=5,switch中执行的语句为 case 5:s++;break; 所以s此时为1.(s初值为0),接着执行 break跳出此次switch。
2、k=4,switch中执行语句为:case 4: break; 即什么都不执行就直接break。
3、k=3,switch中执行语句为:case 3:
case 4:break;(两个语句,直到看见break才停止)。

4、k=2,switch中执行语句为:case 2:s+=2;break; 此时s = 3 (1 + 2 = 3),跳出switch。
5、k=1,switch中执行语句为:case 1:
case 5:s++;break; 此时s = 4,跳出switch。

6、k=0,switch中执行语句为:case 0:
case 2:s+=2;break;此时s = 6,跳出switch。

接着k的值 = -1,此时不满足for循环条件,跳出for循环,输出 s = 6

char grades; 改成
char *grades;

#&
&
&*

i = 1 ,i%5 是1 ,进入case 1 分支, 输出 # 然后break跳出switch
i = 2 , i%5 是2,进入case 2分支,输出&
i= 3 ,i%5是3 ,没有case 3 进入default分支,换行,没有break顺序执行后面的case 2 输出 &
i=4, ,i%5是4,和i=3一样,也进入default分支 换行,输出 &
i=5 ,i%5是0,进入case 0 分支输出 * 然后break 跳出switch
i变为6 循环结束

运行过程:
1.for循环中i=1,取余后为1,进入case 1,输出#,case1后面有break语句,所以switch语句跳出,i自增为2;
2.i=2时,取余后为2,进入case2,紧接在后面输出&,case2后面没有语句了,所以跳出了,i自增到3;
3.i=3,取余为3,只有进入default,输出一个回车。i变成4
4.i=4时,同上,所以连续输出两个回车
5.i=5时,取余为0,输出 * 号,break。这时候for循环结束,最后结果就是:#&(中间空两行)再有一个*
应该就是这样了

#&
&
&*
原因: 第一步 i =1 输出 # 后跳出
第二步 i=2 输出 &
第三步 i=3 换行然后输出&
第四步 i=4 换行然后输出&
第五步 i=5 输出*
个人觉得结果是这个

i=1时,i%5为1,产生输出:#
i=2时,i%5为2,从default进入分支,产生输出:换行,&
i=3时,i%5为3,从default进入分支,产生输出:换行,&
i=4时,i%5为4,从default进入分支,产生输出:换行,&
i=5时,i%5为0,从case 0进入分支,产生输出:*

#include 头文件?<stdio.h>
结果为:
#&
&
&*
各次循环依次为1、2、3、4、0所以依次为#、&、\n&、\n&、*所以会出现此结果
注意:default后面没有break所以会顺序执行,即:同样执行case 2


同德县19679373863: C语言switch循环 -
孟亲百合: 第一次switch时c=='A',然后变为'B', 执行case'A':k++;break; (k变为1,然后退出switch,k变为2) 第二次switch时c=='B',然后变为'C', 执行case'B':k--; 及下面的k+=2; break; (k变为1,再变为3,然后退出switch,k变为4) 第三次switch时c=='C',然...

同德县19679373863: C语言switch循环题就解答 -
孟亲百合: 很简单,for循环里面嵌套一个switch语句,所以我们从for循环开始看 首先k的初值是5,然后每次循环递减1(k--),所以k在6次循环中的取值分别为:5, 4, 3, 2, 1, 0 接下来把这6个值按从左到右的顺序代入switch语句中,就和解方程一样:1、k=5,...

同德县19679373863: 怎么让switch语句循环 -
孟亲百合: C语言还提供了多分支选择的switch语句, 形式为: switch(表达式){case 常量表达式1: 语句1;case 常量表达式2: 语句2;…case 常量表达式n: 语句n;default: 语句n+1; } 其语义是:计算表达式的值. 逐个与其后的常量表达式值相...

同德县19679373863: 请问c语言的switch语句到底是什么? -
孟亲百合: C语言中,switch语句的使用格式如下:switch(表达式){ case 常量表达式1 : 语句1; break; case 常量表达式2 : 语句2; break; ...... case 常量表达式n : 语句n; break; default : 语句n+1;}举例如下:int i=4, a=0; switch(i) {case 1 : ...

同德县19679373863: c语言中的switch语句 -
孟亲百合: switch不能判断一个数的范围.除非这些数成线性关系,进行归一化处理,使其每个条件变成一个数.若没有规律可以处理,还非要用switch会很累的.如下:switch(x) { case 0:case 1:...//此处省略n行 case 850:y=0;break; case 851:case 852;...//没完没了的省略 case 1350; y=5;break;...//省略很多呢 }

同德县19679373863: C语言问题.关于循环的使用 问题希望高手解决.懂单片机的更好 将一个switch语句用循环表示. -
孟亲百合: 首先告诉你,这不是一个循环程序!使用switch只是相当于if ....else....程序是判断wenum的值,wenum的值是0,1,2,3,4,5中的一个.当wenum=0时执行case 0:后面语句遇到break就跳出!,后面的依次类推.如果是在单片机中,循环一般是在while(1)中来完成的,整个switch应该是循环体中的一部分你的s++也应该是在一个循环语句中实现的,或者在定时器中断中实现.总之要保证s++反复执行!

同德县19679373863: c语言switch语句 -
孟亲百合: 不能,case后面的常量表达式只能是整型,字符型 #include<stdio.h> void main() { int score=0; int grade=0; printf("成绩(0-100)\n");scanf("%d",&score); //键盘输入学生成绩 while(score>=0&&score<=100) { grade=score/10; switch(...

同德县19679373863: C语言 switch 循环
孟亲百合:A. (X) switch 只能针对基本数据类型使用switch,这些类型包括int、char等,float不行,x是float B. (X) 同上,且 case 1,2 不能有两个常量 C.(X) case 2*a ,case标签必须是常量表达式, 不能有变量 D. (X)a+B,C语言区分大小写,B没有定义, 应该你打错了吧,应该是a+b, 否则没答案了,改a+b就对了

同德县19679373863: c语言switch语句怎么用 -
孟亲百合: switch(表达式){ case常量表达式1: 语句1; case常量表达式2: 语句2; … case常量表达式n: 语句n; default : 语句n+1; }每一case语句之后增加break 语句, 使每一次执行之后均可跳出switch语句,从而避免输出不应有的结果.

同德县19679373863: C语言中switch语句的用法 -
孟亲百合: 在每个case语句后加上break语句(即在每个printf语句后加上一句break;),执行break后直接跳出switch.这样就只输出一个了

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网