Mai 的课堂

主题 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 的平方
CountOUTPUT
11
24
39
416
525
步骤 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。

练习这项技能

用一道题练习刚学到的知识,再到工作室编辑器中运行你的答案。