一、分支结构选择结构1、if 语句** 单分支**if(条件){语句;}双分支if(条件){成立执行;}else{不成立执行;}多分支if(条件1){}else if(条件2){}else{}if 超级重点易错点易错1 和 分不清 判断相等 赋值if(a1) // 恒真永远成立if(a1) // 正确判断易错2if 不带大括号只控制下一行if(a0)printf(“ok”);printf(“我不受if控制一定执行”);易错3逻辑与 、逻辑或 ||A B两边都真才真并且A || B一个真就真或者易错4短路特性-A BA假 →直接不执行BA || BA真 →直接不执行B2、switch 多分支语句适合固定整数、固定字符匹配场景不适合区间判断。基本语法switch(变量){case 常量1:语句;break;case 常量2:语句;break;default:都不匹配执行;break;}switch 五大铁律括号内只能是整数/字符不能是小数、区间case 后面必须常量不能写变量不加 break 会穿透执行最大考点default 可选放最后匹配成功后从当前case开始向下执行不是只执行本行经典穿透错题解析int func(int a){int b;switch (a){case 1: b 30;case 2: b 20;case 3: b 16;default: b 0;}return b;}所有 case 无 break → 全部穿透到 default → 结果永远为 0三、循环结构重复执行1、while 循环先判断、后执行语法while(条件){循环体;}特点条件不成立一次都不执行适合不确定循环次数场景易错点必须在循环内改变条件变量否则死循环不要把赋值 当成判断 2、for 循环语法for(初始化; 判断条件; 更新){循环体;}执行顺序初始化只执行一次判断条件成立 → 循环体更新变量回到第二步优势结构紧凑、边界清晰、已知循环次数首选易错点for 括号内用两个分号3、do-while 循环先执行、后判断do{循环体;}while(条件);特点至少执行一次末尾必须加分号四、三种循环对比总结while先判后执可能0次do-while先执后判最少1次for结构最规范已知次数首选五、break 和 continue 区别break直接跳出整个循环/switch彻底结束continue结束本次循环直接进入下一次不跳出循环六、全篇终极易错点汇总if 判断千万别写 必须 if/while 不加大括号只控制第一行switch 不加 break 会穿透执行switch 不能判断小数、区间do-while 结尾必须有分号 || 存在短路运算循环必须能退出避免死循环