C语言 - 流程控制语句
流程控制结构
1 - 顺序结构:按书写顺序执行每一条语句
2 - 选择结构:对给定的条件进行判断,根据判断结果决定执行哪一段代码
3 - 循环结构:在给定条件成立的情况下,反复执行某一段代码
选择结构
1 - if 语句:如果要在 if 后面定义新的变量,则一定要使用大括号,如
1 if(10 > 6){ 2 int a;// a 的作用域在代码块结束后失效 3 } 4 printf("2 = %d",a);// 报错,出了 if 作用域是找不到标识符 a 的
1 if(10>6) 2 int a; 3 printf("a=%d",a);// 报错,同样是找不到标识符
2 - 用户输入分数,根据分数打印出等级(A-E),等级标准:A90-100 B80-89 C70-79 D60-69 E0-60
1 int score = 0; 2 printf("请输入分值:\n"); 3 scanf("%d",&score); 4 4 // 判断等级 5 if(score>=90&&score<=100) 6 7 printf("A\n"); 8 else if(score>=80) 9 10 printf("B\n"); 11 else if(score>=70) 12 13 printf("C\n"); 14 else if(score>=60) 15 16 printf("D\n"); 17 else 18 printf("E\n");
2 - switch 语句
① 该结构把数值与数值 1 进行比较,若相等则执行后面的所有语句,直到 break 语句跳出整个循环;若前面的条件都不满足则最终会执行 default 后面的语句。如果不写 break 语句则后面的语句会接连执行,直到 break 语句或者是全部语句执行完毕。只要前面的条件成立则后面的判断就直接被忽略,不再往下执行
② 错误使用
1 char c = 'A'; 2 switch(c){ 3 case 'A': 4 printf("This is A"); 5 break; 6 case 65:// 报错:A 的 ASCII 值是 65 7 printf("This is A"); 8 break; 9 case 3: 10 int a = 199;// 报错:a 的作用域不明确。C 语言检查变量的作用域根据 {} 决定 11 printf("a = %d",a); 12 break; 13 default: 14 printf("switch end"); 15 break; 16 }
注:在 case 后面的语句中定义变量则必须使用大括号
1 case 3:{ 2 int a = 199; 3 printf("a = %d",a); 4 break; 5 }
3 - 输入分数,根据分数输出等级(A-E),等级标准:A90-100 B80-89 C70-79 D60-69 E0-60
1 int score; 2 printf("请输入分值:\n"); 3 scanf("%d",&score); 4 switch(score/10){ 5 6 case 10: 7 break; 8 case 9: 9 printf("A\n"); 10 break; 11 case 8: 12 printf("B\n"); 13 break; 14 15 case 7: 16 printf("C\n"); 17 break; 18 19 case 6: 20 printf("D\n"); 21 break; 22 23 default: 24 printf("E\n"); 25 break; 26 }
4 - if 与 switch:if 语句能够完成的功能,switch 有时并不能够完成,在有些情况下,if 语句和 switch 语句可以互换。switch 语句能完成的功能,if 语句都可以完成
循环结构
1 - while 循环语句:可以在 while 循环体内使用 if...break(跳出整个循环)或 if...continue 语句(跳出本次循环)
2 - 代码示例:输入一个正整数 n,计算 1+2+3+...n 的值
1 int n = 0; 2 while(n <=0 ){ 3 4 printf("请输入一个正整数:\n"); 5 scanf("%d",&n); 6 } 7 8 int sum = 0; 9 int number = 0; 10 11 while(number < n){ 12 13 number++; 14 sum = sum + number; 15 16 } 17 printf("计算结果为:%d\n",sum);
2 - do...while 循环语句:至少会执行一次循环体
3 - for 循环语句
① for 循环中语句 1、条件、语句 2 都是任选项,都可以省略(如果都省略掉的话就意味着陷入无限循环)
② for 和 while:在性能上 for 循环稍胜一筹,因为 while 循环只能使用外部的变量,而 for 循环可以对变量进行及时回收。while 能实现的,for 都可以实现
③ 代码示例:使用 for 循环输出九九乘法表
for(int i = 1;i <= 9;i++){ for(int j = 1;j <=i ;j++){ printf("%dx%d=%d\t\t",i,j,i*j); } printf("\n"); }
日志信息
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)