C语言之分支结构
流程控制
如何看懂一个程序
- 流程
- 每个语句的功能
- 试数
对一些小算法的程序
- 尝试自己去编程解决它,大部分人都自己无法解决
- 如果解决不了,就看答案
- 关键是把答案看懂,这个要花很大的精力,也是我们学习的重点
- 看懂之后尝试自己去修改成功,并且知道修改之后程序的不同输出结果的含义
- 照着答案去敲
- 调试错误
- 不看答案,自己独立把答案敲出来
- 如果程序实在无法彻底理解,就把它背会
1、什么是流程控制
程序代码执行的顺序
2.流程控制的分类
- 顺序执行
- 选择执行
- 循环执行
选择
定义:某些代码可能执行,也可能不执行,有选择的执行某些代码
分类:
1. if最简单的用法
格式:if (表达式)
语句
功能:
如果表达式为真,执行语句
不成立,语句不执行
#include <stdio.h> int main(void) { if (3 > 2) printf("AAAAA\n"); return 0; }
#include <stdio.h> int main(void) { if (3) printf("AAAAA\n"); //输出AAAAA if (0) printf("BBBBB\n"); //不输出BBBBB if (0 == 0) printf("CCCCC\n"); //输出CCCCC return 0; }
2.if...else...的用法
#define _CRT_SECURE_NO_WARNINGS 1 # include <stdio.h> int main(void) { int i, j; scanf("%d %d", &i, &j); if (i > j) printf("i大于j\n"); else printf("i小于j\n"); }
3.if...else if...else的用法
# include <stdio.h> int main(void) { int delta = 3; if (delta > 0) printf("有两个解\n"); else if (delta < 0) printf("有一个解\n"); else printf("无解\n"); return 0; }
4.if举例--求分数的等级
1 #define _CRT_SECURE_NO_WARNINGS 1 2 # include <stdio.h> 3 4 int main(void) 5 { 6 float score; 7 8 printf("请输入您的考试成绩:"); 9 scanf("%f", &score); 10 if (score > 100) 11 printf("做梦\n"); 12 else if (score >= 90 && score <= 100) //不能写成90<=score<=100 因为会一直为1为真 13 printf("优秀\n"); 14 else if (score >= 80 && score < 90) 15 printf("良好\n"); 16 else if (score >= 60 && score < 80) 17 printf("及格\n"); 18 else if (score >= 0 && score < 60) 19 printf("不及格,继续努力!\n"); 20 else 21 printf("输入的分数过低,不要如此自卑!\n"); 22 23 return 0; 24 25 }
5.if的常见问题解析
5.1 if空语句的问题
if (3 > 2); 等价于 if (3 > 2) ; //这是一个空语句
互换两个数字
#include <stdio.h> int main(void) { int i = 3; int j = 5; int t; t = i; i = j; j = t; printf("i=%d, j=%d\n", i, j); return 0; }
数字降序排列
1 #define _CRT_SECURE_NO_WARNINGS 1 2 # include <stdio.h> 3 4 int main(void) 5 { 6 int a, b, c,t; 7 8 printf("请输入三个整数(中间以空格分隔):"); 9 scanf("%d %d %d", &a, &b, &c); 10 11 //编写代码完成a是最大值 b是中间值 c是最小值 12 if (a < b ) 13 { 14 t = a; 15 a = b; 16 b = t; 17 } 18 if (a < c ) 19 { 20 t = a; 21 a = c; 22 c = t; 23 } 24 if (b < c) 25 { 26 t = b; 27 b = c; 28 c = t; 29 } 30 31 printf("%d %d %d\n", a, b, c); 32 return 0; 33 }
6.switch
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main(void) { int val; printf("请输入您需要进入的楼层:"); scanf("%d", &val); switch (val) { case 1: printf("1层开!\n"); break; case 2: printf("2层开!\n"); break; case 3: printf("3层开!\n"); break; default: printf("还没有盖到这一层"); break; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)