主题 8 · 编程
用 FOR、WHILE 和 REPEAT 进行循环
计数控制循环、前置条件循环和后置条件循环,各自何时使用,以及如何避免死循环。
第 3 课,共 7 课大纲 8.1更新于 2026年10月31日
三种循环
循环(迭代)重复执行一段语句。根据开始前你知道什么来选择循环:
| 循环 | 类型 | 适用于 | 至少执行一次? |
|---|---|---|---|
FOR ... NEXT | 计数控制 | 你知道要重复多少次 | 取决于范围 |
WHILE ... ENDWHILE | 前置条件 | 条件为 TRUE 时重复,每次执行前检查 | 否:可能一次都不执行 |
REPEAT ... UNTIL | 后置条件 | 重复直到条件为 TRUE,每次执行后检查 | 是 |
FOR 循环
FOR 循环让计数变量依次取从起始值到终止值的每个值。加上 STEP 可以按不同的步长计数,包括倒着数。
伪代码
DECLARE Count : INTEGER
FOR Count <- 1 TO 5
OUTPUT Count * Count
NEXT Count追踪:1 到 5 的平方
| Count | OUTPUT |
|---|---|
| 1 | 1 |
| 2 | 4 |
| 3 | 9 |
| 4 | 16 |
| 5 | 25 |
步骤 1 / 5
用 STEP 倒数
伪代码
DECLARE Seconds : INTEGER
FOR Seconds <- 10 TO 0 STEP -2
OUTPUT Seconds
NEXT Seconds
OUTPUT "Lift off!"WHILE 循环
WHILE 循环先检查条件。如果一开始条件就为 FALSE,循环体一次也不会执行。当你可能根本不需要重复时,就用它。
伪代码
DECLARE Balance : REAL
DECLARE Years : INTEGER
Balance <- 100
Years <- 0
WHILE Balance < 200 DO
Balance <- Balance * 1.05
Years <- Years + 1
ENDWHILE
OUTPUT "Doubled after ", Years, " years"REPEAT ... UNTIL 循环
REPEAT 循环先执行循环体,之后再检查条件,所以它至少执行一次。这非常适合请求输入,因为你得先问,才能检查。
伪代码
DECLARE Guess : INTEGER
REPEAT
OUTPUT "Guess the number"
INPUT Guess
UNTIL Guess = 7
OUTPUT "Correct!"注意: 条件循环里必须改变条件所依赖的东西。如果循环内没有任何东西能让条件改变,循环就永远不会结束。
嵌套循环
循环中的循环:外层循环每执行一次,内层循环都会完整地执行一遍。下面的程序打印一个乘法表网格。
伪代码
DECLARE Row : INTEGER
DECLARE Column : INTEGER
FOR Row <- 1 TO 3
FOR Column <- 1 TO 3
OUTPUT Row, " x ", Column, " = ", Row * Column
NEXT Column
NEXT Row关键术语
- 迭代
- 重复执行一组语句。
- 计数控制循环
- 重复固定次数的循环(FOR)。
- 前置条件循环
- 每次执行前检查条件的循环(WHILE)。
- 后置条件循环
- 每次执行后检查条件的循环(REPEAT ... UNTIL)。
自我检测
反复询问密码直到正确,应该用哪种循环?查看答案
REPEAT ... UNTIL:必须先至少询问一次密码,才能检查它。
嵌套循环例子中,内层语句执行了几次?查看答案
3 × 3 = 9 次。
FOR I <- 2 TO 10 STEP 4 会让 I 取哪些值?查看答案
2、6、10。
练习这项技能
用一道题练习刚学到的知识,再到工作室编辑器中运行你的答案。