三、反应测试
第12课 循环等待用户输入
一、任务目标
理解循环等待,能指出哪一段循环在等按键,而不是哪一段在 delay。
二、我们要学什么
- 学习要点:循环反复检查按键,直到按下才进入下一步,不能只延时碰运气
- 本课过关:能完成:程序会停着等按键,按下后才进入下一步,而不是靠延时碰运气。
- 示例对齐:体验题对应 「3-1-1 循环等待用户输入」;完整代码对应 「3-1-3 计算反应时间」。
三、本节要点
本节抓住「循环等待直到条件满足」。读场景后对照循环何时结束,载入运行:不按则一直等,按下才继续。
四、解题思路
- 输入:板载按键。
- 输出:进入下一步后的灯或提示。
- 生活对照:准备好了再按开始。
- 验证现象:不按时停在等待;一按立刻继续。
本课主要用到:彩灯、板载按键。
- 1明确任务「循环等待用户输入」:要观察的输入/输出主要是 彩灯、板载按键。
- 2用「重复执行」搭出主循环,让程序一直运行,而不是只执行一次就结束。
- 3把计算结果映射到可观察输出(灯、屏、声),每改一处输入就看输出是否跟随。
- 4在循环里判断按键:刚按下用 「按键刚被按下」(触发一次),按住用 「按键正被按住」(持续有效)。
- 5加入延时(约 1 秒/单位),控制节奏,避免画面闪太快或采样过密。
- 6载入后先运行,对照「彩灯」;再只改一处参数看差异。
流程示意(可对照左侧文字)
五、图形块功能讲解
下面只列出本课首次出现的 Mixly 图形块(真积木截图)。已在前面课讲过的不再重复;先认新块,再点「载入」对照拖搭。
| 图形块 | 分类 | 作用 | 本课用法 |
|---|---|---|---|
![]() | 控制 | 先跑一遍循环体,再根据条件决定是否继续。 | 本课编程练习中首次使用,载入后可在工具箱对照。 |
![]() | 控制 | 读取开机以来的毫秒数,用于计时、测反应。 | 本课编程练习中首次使用,载入后可在工具箱对照。 |
六、知识点讲解
循环等待:反复检查按键,直到按下才进入下一步。不能靠「延时一会儿碰运气」。等到条件满足:内层循环的退出条件是「用户按下了」。没按就一直等,程序停在这一步,节奏由你掌握。延时不是等待输入:延时只是暂停固定时间,不管你按没按。用延时代替等待,会出现还没准备好就继续、或按了却没被看见。为测反应做准备:后面测反应时间,也要先能「等到按下」。本课先把等待写对。
对照与过关:验证:不按时程序停在等待;一按立刻继续下一步。能指出哪一段循环在等按键,而不是哪一段在 delay。会写「等到按下」之后,下一课再测按下花了多久。
七、编程练习
点「载入」打开 MixVM(board=mini_design)。默认图形化积木;起步程序与积木均来自 MixGo MINI 兴趣课程/学期1。在 Mixly 工具栏点「运行 / 停止」,「检查」做关键字核对。请先读自学精讲与解题思路,再点载入。
兴趣课程:3-1-1 循环等待用户输入.mix。载入后运行。
正在载入编程环境
正在载入 MixGo MINI 仿真编程环境…
八、课堂练习
先完成两道判断题,再完成选择题;全部选定后点「检查」。
判断:用固定延时代替循环检测,也能可靠地等到用户按下后再继续。
判断:应在循环中反复检测按键,直到按下才结束等待并进入下一步。
延时与循环等待的本质区别是什么?
在用户尚未按下时,程序应当如何?
九、本节小结
本课主题是循环等待:用「重复执行」反复检查按键,直到按下才进入下一步。体验程序会停着等按键;完整程序在按下后记下时刻,用来计算反应时间。不要用一次延时碰运气。

