🧱 结构化程序设计
所有程序都由三种基本结构搭起来:顺序、分支、循环。先认识它们,再玩下面的小挑战!
考纲知识点:顺序结构、分支结构、循环结构。
📖
考纲 · 知识点详述
摘自《CCF编程能力等级认证 C++&Python 认证标准》C++ 一级
- (10)掌握顺序结构程序的编写。
- (11)掌握分支结构程序的编写,掌握if 语句、if-else 语句、switch 语句,了解三目运算。
- (12)掌握循环结构程序的编写,掌握for、while、do-while 循环语句的使用以及continue 语句和break 语句在循环中的应用。
📚
先学一学
花 4 分钟读完下面 4 课,再去闯关就不慌啦
1
🧱 三种积木:顺序、分支、循环
你玩过乐高吗?再复杂的城堡,也是用几种小积木拼出来的。程序也一样!科学家早就证明了:任何复杂的程序,都能只用三种「结构积木」搭出来——顺序、分支、循环。这种写法就叫「结构化程序设计」。
- ➡️顺序结构:一条道走到黑,从上往下一行一行做。
- 🔀分支结构:走到岔路口,看条件选一条路走。
- 🔁循环结构:同一件事重复做,直到条件不满足才停。
🏗️ 行业小秘密:积木可以互相套
这三种结构还能互相嵌套:循环里面放分支(每跑一圈判断一次)、分支里面放循环(选中的那条路重复跑)。再大的程序,都是这么一层层套出来的。
💡 口诀:顺序一步步、分支二选一、循环重复做,三种积木搭天下。
2
➡️ 顺序结构:一条道走到黑
顺序结构最简单:电脑像读故事书一样,从第一行读到最后一行,一句不跳、一句不乱。起床 → 刷牙 → 吃早餐 → 上学,顺序换一下就乱套啦。
📖 看个小例子(看得懂就好,不用背)
int a = 3;
int b = 5;
cout << a + b; // 先装 3,再装 5,最后算和输出 8
int b = 5;
cout << a + b; // 先装 3,再装 5,最后算和输出 8
✅ 顺序结构的「三步走」
它主要干三件事:输入数据(cin)→ 处理数据(算一算)→ 输出结果(cout)。绝大多数小程序,都是这个套路。
💡 口诀:程序默认从上往下走,想「跳着走」或「反复走」才用分支和循环。
3
🔀 分支结构:走到岔路口
生活里全是岔路口:「如果下雨就带伞,否则带帽子」。程序里的岔路口就叫分支结构,常见有四种写法。
1️⃣ if:只有一条路
if (下雨) 带伞;
条件成立就做,不成立就直接跳过。只有一条语句时可以省掉大括号。
2️⃣ if - else:二选一
if (N > M) cout << N - M;
else cout << M - N;
else cout << M - N;
成立走 if,不成立走 else,两边一定走其中一条,不会都不走。
3️⃣ if - else if 链:多选一
像「90 分以上优秀 / 80 分以上良好 / 否则加油」,从上往下挨个问,问到第一个成立就停下。
4️⃣ switch:按号码跳格子
把变量的值和每个 case 比一比,跳到匹配的那一格开始往下做。它只能比较整数和字符这种「数得清」的值。
⚠️ switch 的头号大坑:忘写 break 会「穿透」
每个 case 后面都要写 break;,意思是「跳出去,别往下做了」。一旦忘了写,程序会从匹配的那一格一直往下「穿透」,把后面所有 case 的内容全做一遍!
switch (op) {
case 'A': cout << 1;
case 'B': cout << 2;
case 'C': cout << 3;
case 'D': cout << 5;
}
case 'A': cout << 1;
case 'B': cout << 2;
case 'C': cout << 3;
case 'D': cout << 5;
}
如果 op 是 'C':因为没有 break,会输出 3 和 5,而不只是 3。
🎩 三目运算:一句话的「如果…否则…」
条件 ? 成立时取它 : 不成立时取它
比如 a > b ? a : b 就是「挑出 a、b 中较大的那个」。它叫「三目」,因为有三个参与部分。一级只要看懂就行。
💡 口诀:switch 每个 case 后都要 break,不然一路滑到底!
4
🔁 循环结构:重复干活不喊累
让电脑数 1 到 100,你不会写 100 行吧?用循环,同一段代码只写一遍,电脑帮你跑很多次。一级要学三种循环。
🎯 for:知道要跑几次
for (int i = 1; i <= 9; i++) { ... }
括号里三段:起点(i = 1)→ 继续的条件(i <= 9)→ 每圈结束后做什么(i++,就是 i 加 1)。第三段不一定是加 1,写 i += 2 就一次跨 2 格,写 i -= 3 就倒着数。
🔎 while:先问再做
while (N > 0) { ... }
每次进门前先检查条件,成立才做;条件一开始就不成立,一次也不做。不知道要跑几次时用它最方便。
🔄 do-while:先做再问
do { ... } while (条件);
先干一次,再问还干不干。所以循环体至少会执行一次——这是它和 while 唯一的区别,也是最爱考的点!
🆚 别认错:break vs continue
· break:直接跳出整个循环,剩下的次数一次也不跑了(像「放学铃响,全体解散」)。
· continue:只跳过这一圈剩下的部分,直接进入下一圈(像「这题跳过,做下一题」)。
⚠️ 小心:如果 continue 写在循环体的第一句,那它后面的语句永远也执行不到。
♾️ 死循环:停不下来的小怪兽
如果循环条件永远成立(或者循环里忘了改变量),程序就会一直转圈,这叫死循环 / 无限循环。while 和 for 都可能出现,按 Ctrl+C 可以强行停下。
💡 口诀:break 全散伙,continue 跳这一圈;do-while 至少做一次。
🎯
闯关小锦囊 · 考点提醒
- switch 忘写 break 会「穿透」:从匹配的 case 开始,把后面所有 case 都执行一遍(op='C' 会输出 3 和 5)。
- break 跳出整个循环,剩下的次数一次不跑;continue 只跳过本次,直接进入下一圈。continue 写在第一句会让后面永远执行不到。
- do-while 的循环体至少执行一次(先做再问);while 和 for 都是先判断,可能一次都不做。
- 三种基本结构(顺序 / 分支 / 循环)可以互相嵌套,任何复杂的程序都能只用它们搭出来。
- for 的第三段不一定是 +1:i += 2 一次跨 2 格,i -= 3 倒着数;循环体里还能再改 i,要一步步跟着算。
- while 和 for 都可能出现死循环(条件永远为真,或忘了改循环变量)。
- 三目运算 条件 ? a : b:条件成立取 a,否则取 b,一级只要看懂。
- if-else 两边必定走一条;判断「结果是不是一定为正」时,别忘了相等时可能是 0(是非负数,不是正数)。
🎮
学完了?来闯关!
下面 14 个小挑战,点一点就能玩
Demo 原型 · 每个知识点独立页面 · 暂不含真实编译与进度存储。