小白嵌入式day5

C语言程序结构与选择语句核心知识笔记

一、程序执行的三大流程

1. 输入数据:通过scanf、文件读取等方式获取原始数据

2. 处理数据:通过运算、逻辑判断等操作加工数据

3. 输出结果:通过printf、文件写入等方式展示处理结果

二、程序的三大基本结构

• 顺序结构:按代码顺序逐行执行(如a=1; b=2; c=a+b;)

• 分支结构:根据条件选择执行路径(if-else、switch)

• 循环结构:重复执行代码块(后续学习)

 关键结论:任何程序都可由这三种结构组合实现

三、选择结构的条件构建

1. 关系运算符
符号 含义 示例(a=3, b=5) 
> 大于 a>b → 0 
== 等于 a==3 → 1 
!= 不等于 a!=b → 1 

2. 逻辑运算符(优先级:! > && > ||)

◦ &&(与):全1为1,遇0短路(如a&&b中a为0则不计算b)

◦ ||(或):全0为0,遇1短路(如a||b中a为1则不计算b)

◦ !(非):取反(!0=1,!5=0)

案例:a=1, b=2; --a&&++b → a=0,b=2(因--a后为0,++b不执行)

四、if-else分支语句详解

1. 单分支结构
if (x>0) { printf("正数"); }
   条件为真时执行语句,否则跳过

2. 双分支结构
if (score>=60) { printf("及格"); }
else { printf("不及格"); }
    非此即彼的二元选择

3. 多分支结构
if (grade=='A') { ... }
else if (grade=='B') { ... }
else { ... }
    按顺序匹配条件,建议最后用else处理默认情况

4. 注意事项

◦ if后不加;,否则视为空语句

◦ else必须与最近未配对的if结合(避免悬挂else问题)

◦ 遵循「高内聚」原则:if-else中尽量只做逻辑判断,输出等操作放在外部

五、条件运算符(三元表达式)

• 语法:条件 ? 真分支 : 假分支

• 等价转换:
// 三元表达式
int max = a>b ? a : b;  
// 等价于if-else
if (a>b) max=a; else max=b;
六、switch多分支语句

1. 标准格式
switch(表达式) {  
    case 1: 语句1; break;  
    case 2: 语句2; break;  
    default: 语句n; break;  
}
2. 核心规则

◦ 表达式必须为整型(如int、char),case后必须是常量

◦ break用于跳出分支,若无break会「穿透」执行后续case

◦ default可放任意位置,建议始终添加以处理异常情况

易错点:case写错为dafault时会变成标签(如dafault: printf();仍可执行)

七、选择结构对比
结构 适用场景 性能特点 
if-else 条件为范围判断或逻辑组合 顺序判断,适合少量分支 
switch 条件为离散值匹配 跳转表实现,效率更高 
条件运算符 简单二元选择的表达式场景 代码更简洁 

你可能感兴趣的:(嵌入式硬件,嵌入式实时数据库)