前言很多刚学编程的小白会有疑惑 为什么我写的代码只能从上到下死板执行一遍不能做判断、不能重复运行答案很简单你的程序还没有 “脑子”。单纯的顺序代码就像流水线机器只会机械执行固定步骤。 而分支判断 循环重复就是程序的大脑分支if-else、switch让程序会做选择循环for、while让程序会重复干活所有小游戏、软件功能、后台逻辑底层全是这四个语法的组合。 今天不用枯燥理论全程通俗讲解 两大实战案例菜单系统 猜数字游戏零基础直接看懂、直接上手跑代码一、先搞懂什么是分支什么是循环1.1 分支程序的 “选择题”生活中处处是判断如果下雨就带伞if否则不用带伞else编程里的分支就是满足条件就执行对应代码不满足就跳过。 常用两种分支语法if-else万能判断适合范围判断、多条件判断switch精准匹配适合固定数字 / 选项判断比如菜单选择1.2 循环程序的 “复读机”生活中重复的事每天起床、吃饭、睡觉反复做题直到学会编程里的循环就是让一段代码重复执行直到条件不成立。 常用两种循环语法while先判断、后执行适合不确定循环次数的场景for结构规整适合确定循环次数的场景1.3 核心结论只有顺序代码程序是死板流水线分支 循环结合程序有判断能力 重复能力才算真正的智能程序二、零基础吃透四大核心语法2.1 if-else 分支万能判断语法结构// 单分支满足条件才执行 if(条件){ 执行代码; } // 双分支二选一 if(条件){ 条件成立执行; }else{ 条件不成立执行; } // 多分支多选一 if(条件1){ 满足1执行; }else if(条件2){ 满足2执行; }else{ 都不满足执行; }通俗理解条件成立 真执行 条件不成立 假跳过 适合分数判断、大小比较、权限判断等所有范围场景2.2 switch 分支精准选项判断专门用来处理固定整数选项菜单首选switch(变量){ case 选项1: 代码1; break; // 跳出分支必须加 case 选项2: 代码2; break; default: // 所有选项都不匹配时执行 默认代码; break; }小白重点必须加break否则会穿透执行只适合固定数字不适合范围判断2.3 while 循环不定次数循环while(循环条件){ 重复执行的代码; 条件变更避免死循环; }特点先判断条件成立就循环不成立直接退出 适合游戏持续运行、菜单反复弹出、持续输入判断2.4 for 循环定次数循环for(初始化变量; 循环条件; 变量更新){ 重复执行代码; }特点三步合一结构最规整 适合循环 10 次、遍历数字、固定次数重复操作三、实战案例 1万能菜单系统switch while案例需求重复弹出功能菜单不主动退出就一直显示输入 1、2、3 对应不同功能输入 0 退出程序输入错误数字提示输入有误完整可运行代码#includestdio.h int main() { int choice 0; // while循环实现菜单重复显示 while (1) { // 打印菜单界面 printf( 功能菜单 \n); printf(1. 功能一打印问候\n); printf(2. 功能二数字累加\n); printf(0. 退出程序\n); printf(请输入你的选择); scanf(%d, choice); // switch分支匹配用户选项 switch (choice) { case 1: printf(你选择了功能一欢迎学习分支循环~\n\n); break; case 2: printf(12345 15\n\n); break; case 0: printf(程序已退出\n); return 0; // 结束程序 default: printf(输入错误请输入0/1/2\n\n); break; } } return 0; }运行效果说明输入 1/2执行对应功能菜单自动刷新输入 0直接退出程序输入其他数字提示错误重新选择全程循环运行不会一次性结束核心知识点总结while(1)死循环实现持续运行switch精准处理菜单选项比 if 更简洁default容错处理避免非法输入报错四、实战案例 2经典猜数字游戏所有语法合体这是最经典的分支 循环综合案例几乎所有编程入门必写游戏规则电脑随机生成 1~100 的数字玩家反复输入数字猜测提示「猜大了」「猜小了」直到猜对猜对后显示猜测次数可重新游玩用到的所有语法while循环猜数直到猜对if-else if-else判断大小、给出提示循环 分支嵌套还原真实游戏逻辑完整可运行代码#includestdio.h #includestdlib.h #includetime.h int main() { // 设置随机数种子保证每次数字不一样 srand((unsigned int)time(NULL)); // 生成1~100随机数 int target rand() % 100 1; int guess 0; int count 0; // 记录猜测次数 printf( 猜数字游戏 \n); printf(游戏规则猜测1-100之间的数字\n\n); // 循环一直猜直到猜对 while (1) { printf(请输入你猜测的数字); scanf(%d, guess); count; // 每次猜测次数1 // 分支判断对比数字大小 if (guess target) { printf(猜大了再试试~\n\n); } else if (guess target) { printf(猜小了再试试~\n\n); } else { // 猜对结束循环 printf(恭喜你猜对了\n); printf(本次一共猜测%d 次\n, count); break; // 跳出循环游戏结束 } } return 0; }运行逻辑拆解逐行小白讲解srandrand生成随机答案每次运行不一样while(1)开启无限猜数模式if-else三层判断输入 答案 → 提示猜大 - 答案 → 提示猜小相等 → 猜对break结束循环count变量统计游玩次数增加游戏体验五、四大语法终极使用场景总结整理好直接套用的场景以后写代码直接对照表格语法核心作用适用场景if-else条件判断、范围匹配大小比较、权限判断、分数评级、复杂条件switch精准固定选项匹配菜单选择、功能切换、固定状态判断while不定次数循环游戏常驻、菜单循环、持续输入监听for固定次数循环批量重复、遍历数据、固定次数操作六、小白避坑指南switch 忘记 break会出现选项穿透执行多个 case 代码一定要加 break循环不更新条件造成死循环while 循环里一定要有条件变更 break否则程序卡死if 后面乱加分号if(条件);{代码}分号会结束语句导致判断失效分不清 for 和 while知道循环次数用 for不知道次数用 while七、结尾为什么分支循环是编程核心所有编程高级功能都是这四个语法堆叠出来的小游戏猜数字、贪吃蛇、五子棋软件功能登录判断、菜单切换、数据刷新算法逻辑遍历、筛选、判断、循环迭代学会分支 循环你就真正入门了编程不再只会写死板的代码能自己设计逻辑、写小项目后续会持续更新最后小提问你看懂菜单和猜数字的逻辑了吗可以自己修改代码调整游戏范围、菜单功能哦