循环与条件
Control 类(橙色)积木控制程序的流程:重复、等待、分支。加上 Operators 类(绿色)的比较积木,程序就能"看情况办事"。
等待
wordblocks
等待 [1] 秒
等待到 <条件>等待 x 秒:暂停固定时间。等待到 <条件>:卡在这里直到条件为真。传感器程序的核心积木:
wordblocks
开始移动 [前进]
等待到 <颜色传感器 [C] 反射光 < [30]>
停止移动循环
wordblocks
重复 [10] 次
...
重复执行 ← 无限循环
...
重复执行直到 <条件>
...| 循环 | 用途 |
|---|---|
| 重复 x 次 | 已知次数:闪灯 3 次、抖动机械臂 5 下 |
| 重复执行 | 永远跑:巡线主循环、状态显示 |
| 重复执行直到 | 跑到条件满足:巡线直到看见路口 |
巡线通常就写成一个"重复执行直到"循环,每圈根据传感器微调方向(详见巡线)。
条件分支
wordblocks
如果 <条件> 那么
...
如果 <条件> 那么
...
否则
...条件槽 < > 里放 Sensors 类的判断积木或 Operators 类的比较积木:
wordblocks
如果 <颜色传感器 [C] 颜色 = [红色]> 那么
播放声音 [Bing]
否则
显示图案 [X]比较与逻辑(Operators)
wordblocks
< [读值] > [50] > ← 大于
< [读值] < [50] > ← 小于
< [读值] = [50] > ← 等于
< <条件A> 与 <条件B> >
< <条件A> 或 <条件B> >
< 不成立 <条件> >传感器读值用范围,不用等于
反射光、距离这类连续数值几乎永远不会正好等于某个数。写 < 30 或 > 70,别写 = 30。"等于"只用于颜色这种离散值。
组合示例:来回巡逻
wordblocks
当程序启动时
设置移动马达 [A+E]
重复 [4] 次
开始移动 [前进]
等待到 <距离传感器 [D] 距离 < [10] cm>
移动 [后退] [1] 圈
移动 [转向 100] [340] 度 ← 掉头(度数需实测)练习
- 写一个"红灯停绿灯行":重复执行,看到红色停止移动,看到绿色开始前进。
- 用"重复 5 次"让灯光矩阵显示 5 → 4 → 3 → 2 → 1 倒计时(配合变量更优雅)。
下一课:变量 Variables。