C语言第3讲:分支和循环
大家好这篇把分支和循环上下两讲全部整合从基础语法到实战猜数字小游戏一篇吃透 C 语言最核心的逻辑结构新手必看、必练、必收藏 完整目录if 语句关系操作符条件操作符逻辑操作符、||、!switch 语句while 循环for 循环do-while 循环break 和 continue 语句循环的嵌套goto 语句随机数生成rand/srand/time猜数字游戏基础版 进阶版全套知识点总结1. if 语句最常用分支1.1 基础 ifif(表达式) 语句;非 0 为真执行语句0 为假不执行。1.2 if…else… 二选一if(表达式) 语句1; else 语句2;1.3 多条语句必须用{}if/else 默认只控制一条语句多语句必须加大括号。1.4 嵌套 if多条件判断if(条件1) ... else if(条件2) ... else ...1.5 悬空 else 问题else 永远匹配最近的 if加{}可避免歧义。2. 关系操作符比较用!结果真 1假 0易错点不要把写成不要写18age36应写age18 age363. 条件操作符三目运算符格式表达式1 ? 表达式2 : 表达式3表达式 1 为真 → 执行表达式 2表达式 1 为假 → 执行表达式 3简化 if…else…代码更简洁。4. 逻辑操作符组合条件!逻辑非真↔假逻辑与两边都真才真||逻辑或一边真就真短路特性左边为假右边不执行||左边为真右边不执行5. switch 语句多分支switch(整型表达式) { case 常量值: 语句; break; default: 语句; break; }必须是整型表达式每个 case 一般要加break否则会穿透default处理意外情况6. while 循环while(表达式) { 循环体; }先判断再执行条件为假直接退出7. for 循环最常用for(初始化; 判断; 调整) { 循环体; }初始化只执行 1 次判断→执行→调整→再判断结构紧凑便于维护8. do-while 循环do { 循环体; }while(表达式);先执行后判断循环体至少执行 1 次9. break 和 continuebreak永久终止本层循环 /switchcontinue跳过本次循环剩余代码直接进入下一次while跳到判断for跳到调整i10. 循环嵌套一层循环控制范围内层循环做判断。经典案例100~200 之间的素数。11. goto 语句同一函数内跳转到标号多层循环快速退出很方便日常尽量少用避免逻辑混乱12. 随机数生成猜数字必备12.1 rand () —— 生成伪随机数int rand(void);头文件stdlib.h范围0 ~ 3276712.2 srand () —— 设置随机种子void srand(unsigned int seed);12.3 time () —— 用时间做动态种子srand((unsigned int)time(NULL));头文件time.h注意整个程序只调用 1 次12.4 随机数范围公式1~100rand()%100 1a~ba rand()%(b-a1)13. 猜数字游戏完整代码13.1 基础版#include stdio.h #include stdlib.h #include time.h void game() { int r rand()%1001; int guess 0; while(1) { printf(请猜数字); scanf(%d, guess); if(guess r) printf(猜小了\n); else if(guess r) printf(猜大了\n); else { printf(恭喜你猜对了\n); break; } } } void menu() { printf(***********************\n); printf(****** 1. play *****\n); printf(****** 0. exit *****\n); printf(***********************\n); } int main() { int input 0; srand((unsigned int)time(NULL)); do { menu(); printf(请选择); scanf(%d, input); switch(input) { case 1: game(); break; case 0: printf(游戏结束\n); break; default: printf(选择错误请重新选择\n); break; } } while(input); return 0; }13.2 进阶版限制 5 次机会#include stdio.h #include stdlib.h #include time.h void game() { int r rand()%1001; int guess 0; int count 5; while(count) { printf(\n你还有 %d 次机会\n, count); printf(请猜数字); scanf(%d, guess); if(guess r) printf(猜小了\n); else if(guess r) printf(猜大了\n); else { printf(恭喜你猜对了\n); break; } count--; } if(count 0) printf(你失败了正确答案是%d\n, r); } void menu() { printf(***********************\n); printf(****** 1. play *****\n); printf(****** 0. exit *****\n); printf(***********************\n); } int main() { int input 0; srand((unsigned int)time(NULL)); do { menu(); printf(请选择); scanf(%d, input); switch(input) { case 1: game(); break; case 0: printf(游戏结束\n); break; default: printf(选择错误请重新选择\n); break; } } while(input); return 0; }14. 全套知识点总结分支if /if-else/switch 处理多路径选择循环while /for/do-while 处理重复逻辑跳转break 退出、continue 跳过、goto 自由跳转实战随机数 分支 循环 可写小游戏规范多用{}、函数拆分、代码清晰易读✨ 结尾鼓励分支与循环是 C 语言真正的入门门槛把这篇内容看懂、代码敲会你就已经具备了写小程序、小游戏的能力编程没有捷径多敲多练才是王道对你有帮助的话欢迎点赞、收藏、关注持续更新 C 语言全套精讲