2
多层分支结构
GESP 二级 · 知识点 6

🌳 多层分支结构

程序走到岔路口要会选路:if、if...else、switch,还能一个判断里再套一个判断。层级越多,程序越聪明!

考纲知识点:if 语句、if...else 语句、switch 语句的嵌套
📖
考纲 · 知识点详述
摘自《CCF编程能力等级认证 C++&Python 认证标准》C++ 二级
  1. (7)掌握多层分支结构,掌握if 语句、if...else 语句、switch 语句,及相互嵌套的方法。
📚
先学一学
花 5 分钟读完下面 5 课,再去闯关就不慌啦
1
🧅 if 嵌套:判断里再套判断

分支就是「到岔路口选路」。有时选了路还要再选一次,这叫嵌套(多层分支),像剥洋葱一层套一层:

🌟 一张图记住
嵌套分支像俄罗斯套娃:外面的壳不打开,里面的小人就出不来。写代码时要让外层条件先通过,才轮到内层
💡 口诀:嵌套像剥洋葱,外层不通内层免谈。
2
🪜 分级判断:从高往低排

成绩分等级、年龄段分档,常用 if ... else if ... 一条链。规则是:从宽到严、从高往低排

📊 成绩分等级(≥90 / ≥80 / ≥60)
先问 ≥90,不满足再问 ≥80,再不满足问 ≥60,都不满足才是「加油」。判断要从高往低排
⚠️ 如果把「≥60」放最前面,那 95 分也会被「及格」提前截住,评不出「优秀」!所以宽的条件必须放后面
💡 口诀:分级从高到低排,宽的条件放后面,否则被提前截住。
🆚 易混对比:if 嵌套 vs if-else if 链
· 嵌套:内层是外层「成立时才做的另一件事」(如买满 3 斤才看打几折)。
· else if 链:多个互斥的档位,命中一个就结束(如成绩只属于一个等级)。
两者都能表达多层分支,但语义不同。
💡 口诀:嵌套是「成立里再判断」,else if 是「多选一档位」。
3
🎚️ switch:多路开关

当一个变量要「取不同值、分别做不同事」时,switch 最拿手,像按楼层按钮坐电梯:按到几楼,就执行哪一层(case)。

⚠️ 忘写 break 会「穿透」
每个 case 通常要写 break(下车铃)。忘写 break,程序会一路执行下一个 case,直到遇到 break 或 switch 结束——这叫「穿透」,常常是个 bug!
💡 口诀:switch 多分叉,每个 case 配 break,忘写就穿透。
🌟 行业实际:菜单与电梯
自动售货机、ATM 取款机、电梯的楼层按钮,背后都是 switch:按下一个「值」,就执行对应的一段程序。写菜单时,每个 case 后记得 break,否则会「按了可乐却连雪碧一起出」。
💡 口诀:菜单按钮靠 switch,case 后 break 防穿透。
4
🔗 把条件拼起来:德摩根定律

多个条件可以用「并且 &&」「或者 ||」拼起来。当整个条件要取反(加 !)时,要遵守德摩根定律

📝 跟着推一推(真题同款)
not (a > 5 && b < 3)
= (a > 5 的反面) || (b < 3 的反面)
= (a <= 5) || (b >= 3)
注意 ≥ 的反面是 <、> 的反面是 <=,带等号的别漏掉!
💡 口诀:not 翻进括号,&& 变 ||、|| 变 &&,每个条件都取反,等号别丢。
🆚 易混对比:&& 与 ||
&&:全真才真(一假即假);||:一真即真(全假才假)。取反时两者互换,这就是德摩根的核心。
💡 口诀:&& 全真才真,|| 一真就真;取反互换。
5
🧮 分支的真实用武之地

考试的「大题」几乎都用分支来算,来几道真题式实战:

📆 算星期
今天星期三,再过 45 天是星期几?(3 + 45) % 7 = 48 % 7 = 6 → 星期六(余 0 是星期日)。分支里常用 switch(星期) 输出对应文字。
💡 口诀:(今天+天数)%7 算星期,余 0 是周日。
📚 图书校验码 & 演讲计分
· 校验码:各位数字乘权重求和再 % 11(如 6×1+6×2+7×3=39,39%11=6)。
· 演讲计分:用 if 找出最高分和最低分去掉,再求平均(9.0、9.2、8.8、9.4、9.1 → 去掉 9.4 和 8.8,剩下平均 9.1)。
· 因数求和:遍历 1~50,把满足「i 是 20 的因数」(20%i==0) 的加起来 = 1+2+4+5+10+20 = 42。
💡 口诀:校验码 %11、计分去极值再平均、因数用 %==0 筛。
🆚 易混对比:i % 20 == 0 vs 20 % i == 0
· i % 20 == 0:i 是 20 的倍数(只挑出 20、40…)。
· 20 % i == 0:i 是 20 的因数(挑出 1、2、4、5、10、20)。
题意要「因数求和」必须用后者!
💡 口诀:谁%谁要看清;因数用「总数%i==0」。
🎯
闯关小锦囊 · 考点提醒
🎮
学完了?来闯关!
下面 15 个小挑战,点一点就能玩

Demo 原型 · 每个知识点独立页面 · 暂不含真实编译与进度存储。