在编程中,单一的分支语句或循环语句只能处理简单逻辑,而实际开发中的任务往往需要两者结合 —— 比如批量数据的条件筛选、交互式菜单系统、带有规则判断的重复操作等。今天我们就通过四个典型案例,详解分支语句(if/switch)与循环语句(while/for/do-while)如何协同工作,实现复杂程序逻辑。
一、案例 1:素数判断 —— 嵌套循环 + 条件筛选
需求:打印 100~200 之间的所有素数(素数是大于 1 且只能被 1 和自身整除的数)。
核心逻辑:用外层循环遍历 100~200 的数字,内层循环结合 if 条件判断该数字是否为素数。
关键结合点:
- 外层 for 循环负责 “遍历范围”,内层 for 循环负责 “条件验证”;
- 内层循环中的 if 语句一旦发现整除情况,立即用 break 终止检查,提升效率;
- 外层循环通过 if 判断标记变量is_prime,决定是否打印该数字。
二、案例 2:交互式菜单系统 —— 循环 + 多分支选择
需求:实现一个命令行菜单,支持用户重复选择功能(如加法、减法、退出),直到主动选择退出。
核心逻辑:用 while 循环保持菜单运行,switch 分支处理用户选择,if 判断退出条件。
关键结合点:
- while(1)创建无限循环,让菜单持续运行,直到用户主动退出;
- switch 语句将用户输入的选项(choice)映射到对应功能,每个 case 用 break 隔离逻辑;
- case 3 中通过return 0直接终止程序,替代 break + 额外的循环条件判断,更简洁。
三、案例 3:数组数据筛选 —— 循环遍历 + 多条件分支
需求:从一个整数数组中筛选出 “能被 3 整除且大于 50” 的元素,并计算它们的平均值。
核心逻辑:用 for 循环遍历数组,用 if 多条件判断筛选元素,同时累加符合条件的元素和计数。
关键结合点:
- for 循环通过索引遍历数组,sizeof动态计算长度,避免硬编码;
- if 语句用&&连接两个条件,精准筛选目标元素;
- 循环外的 if-else 分支处理 “无符合元素” 的边界情况,提升程序健壮性。
四、案例 4:游戏回合制逻辑 ——do-while + 分支状态判断
需求:实现一个简单的回合制游戏:玩家和电脑轮流攻击(玩家先攻),直到一方生命值≤0 时游戏结束。
核心逻辑:用 do-while 循环保证至少执行一轮攻击,用 if 判断攻击结果和游戏结束条件。

关键结合点:
- do-while 循环确保 “玩家先攻” 的逻辑(至少执行一次玩家攻击);
- 循环体内的 if 语句在玩家攻击后立即判断电脑是否死亡,提前结束循环;
- 循环条件player_hp > 0控制电脑是否反击,最终的 if-else 分支输出胜负结果。
分支与循环的结合,本质是 “重复操作” 与 “条件判断” 的协同 —— 循环提供了处理批量任务的能力,而分支则让每次重复都能根据实际情况调整行为。掌握这种组合逻辑后,无论是数据处理、交互系统还是游戏逻辑,都能迎刃而解。下一篇我们将介绍扫雷游戏的设计和代码,敬请关注!
如果对案例中的代码有疑问,或者想补充其他结合场景,欢迎在评论区交流~

被折叠的 条评论
为什么被折叠?



