一、比较运算判断条件专用用于两个数比大小、判相等结果只有真 (1) / 假 (0)表格符号含义例子等于if(num 10)!不等于if(key ! 0)大于if(a 5)小于if(b 100)大于等于if(temp 30)小于等于if(time 500)⚠ 注意判断相等必须用是赋值不是判断二、逻辑运算多条件组合判断把多个条件拼在一起用表格符号含义说明逻辑与两个条件都成立才为真逻辑或任意一个成立就为真!逻辑非取反真变假假变真例子c运行if( (temp 30) (key 1) ) // 温度30 并且 按键按下 if( (mode 1) || (mode 2) ) // 模式是1 或 模式是2 if( !flag ) // 如果 flag 是 0没成立三、if 判断最常用条件执行1. 单 ifc运行if(条件) { 满足条件才执行; }例子c运行if(P3_0 0) // 按键按下 { LED 0; }2. if...else...二选一c运行if(条件) { 条件成立执行; } else { 不成立执行; }例子c运行if(num 10) { LED1 1; } else { LED1 0; }3. if...else if...else多条件选择c运行if(条件1) { } else if(条件2) { } else if(条件3) { } else { }例子温度分级c运行if(temp 40) 风扇高速; else if(temp 30) 风扇中速; else 风扇停止;四、switch...case多分支判断比 if 更清晰专门用于固定值判断如模式、按键值、状态c运行switch(变量) { case 值1: 执行内容; break; case 值2: 执行内容; break; case 值3: 执行内容; break; default: 都不满足时执行; }⚠ 必须加break否则会 “穿透执行”例子按键控制模式c运行unsigned char key Key_Read(); switch(key) { case 1: LED1 1; break; case 2: LED2 1; break; case 3: Motor_Start(); break; default: break; }五、for 循环固定次数循环最常用用于延时、计数、遍历数组、闪烁 LEDc运行for(初始化; 条件; 自增/自减) { 循环体; }最经典写法c运行unsigned char i; for(i0; i10; i) // 循环 10 次 { LED ~LED; // LED翻转 }单片机延时必备c运行void Delay(unsigned int t) { unsigned int i,j; for(i0; it; i) for(j0; j123; j); }六、while 循环条件循环1. while先判断再执行c运行while(条件) { 条件成立就一直循环; }例子按键按下才亮灯c运行while(P3_0 0) { LED 0; }2. do...while先执行一次再判断c运行do { 执行内容; } while(条件);至少会执行一次。七、死循环单片机主程序必备单片机程序永远不能结束必须写死循环c运行void main() { while(1) // 死循环 { 按键扫描; LED显示; 数据处理; } }while(1) 永远成立 → 永远跑下去八、实战综合例子把所有语法串起来c运行#include reg52.h typedef unsigned char u8; void main() { u8 i; u8 cnt 0; while(1) // 死循环 { if(P3_0 0) // if判断按键按下 { cnt; // 计数1 if(cnt 5) cnt 0; } // for循环LED流水灯 for(i0; i8; i) { P1 ~(0x01 i); Delay(500); } } }九、超简记忆口诀比较 ! 逻辑 与 || 或非判断if/else if/else、switch循环for次数、while条件单片机必写while(1)总结if条件判断、分支选择switch固定值多分支选择for固定次数循环延时、遍历while条件循环 主程序死循环比较 / 逻辑运算给判断提供条件