让程序把同一件事做很多遍。循环是程序力量感的来源。
设 次数 = 1
循环 次数 <= 3
打印("第" + 文本(次数) + "遍")
次数 = 次数 + 1
输出:
第1遍
第2遍
第3遍
循环 只要条件还成立,缩进里的内容就一遍遍重复。这里的 次数 = 次数 + 1 是关键——读作「把次数改成:原来的次数加一」。
⚠️ 没有这一行,条件永远成立,程序会停不下来(死循环)。写循环一定先想清楚:什么会让条件变成不成立。
上面的写法是最常见的「计数器」模式,三步走:
设 i = 1 # 1. 从几开始
循环 i <= 10 # 2. 做到什么时候停
打印(i)
i = i + 1 # 3. 每遍怎么变
i = i + 1 这种「把变量加一」太常见了,CNplus 有更短的写法:
设 i = 0
i++ # 等价于 i = i + 1
打印(i) # 1
i += 2 # 等价于 i = i + 2
打印(i) # 3
i-- # 等价于 i = i - 1
打印(i) # 2
| 写法 | 等价于 |
|---|---|
i++ |
i = i + 1 |
i-- |
i = i - 1 |
i += 2 |
i = i + 2 |
i -= 2 |
i = i - 2 |
i *= 2 |
i = i * 2 |
i /= 2 |
i = i / 2 |
字符串也能 +=:s += "字" 就是往后接一段。于是上面的计数器循环可以写得更短:
设 i = 1
循环 i <= 10
打印(i)
i++
列表、字典里的元素也能这样(索引复合赋值):
设 表 = [1, 2, 3]
表[0] += 10 # 表[0] = 表[0] + 10
打印(表) # [11, 2, 3]
设 计数 = {"甲": 1}
计数["甲"] += 1 # 计数["甲"] = 计数["甲"] + 1
打印(计数) # {甲: 2}
计数[标签] += 1 在「分组计数」时特别常用——见第六章字典。
想中途不做了,用 跳出:
设 i = 1
循环 真
打印(i)
i = i + 1
如果 i > 5
跳出 # 直接结束整个循环
这里 循环 真 本来会永远循环,靠 跳出 在 i 超过 5 时结束。
想跳过某几遍但继续循环,用 继续:
设 i = 1
循环 i <= 5
如果 i == 3
i = i + 1
继续 # 跳过 i=3 这一轮
打印(i)
i = i + 1
输出 1 2 4 5,3 被跳过了。
跳出的别名是中断,继续的别名是下一轮。效果一样。
循环里套判断是常见套路。比如「打印 1 到 10 里的偶数」:
设 i = 1
循环 i <= 10
如果 i % 2 == 0
打印(i)
i = i + 1
写一个程序:从 10 数到 1(倒着数)。
设 i = 10
循环 i >= 1
打印(i)
i = i - 1
下一章:四、造工具(函数)