控制#
简介#
VEXcode AIM 中的控制指令块用于管理项目流程,处理循环、条件判断、延迟及停止执行。以下是可用指令块的列表:
等待 – 暂停执行指定的时长。
等待直到 – 暂停执行,直到满足指定条件。
重复 – 将内部包含的指令块重复执行指定的次数。
永久循环 – 无限循环地重复执行内部包含的指令块。
重复直到 – 重复执行内部包含的指令块,直到满足某个条件。
当 – 当条件保持为“真”时,重复执行内部包含的指令块。
如果 – 如果条件为“真”,则运行内部包含的指令块。
如果/否则 –如果条件为“真”,则运行一组指令块;否则,运行另一组指令块。
如果/否则如果/否则 – 根据多个条件,选择运行不同的指令块组。
停止程序 – 结束程序的执行。
等待#
等待 指令块会使程序暂停执行一段指定的时间,然后才继续执行下一个指令块。
等待 (1) 秒
参数 |
描述 |
|---|---|
时间 |
需要等待的时长,为一个以秒为单位的正整数或小数。 |
示例
当开始
[Move forward for one second, then stop.]
移动 [向前 v]
等待 (1) 秒
停止移动
等到#
等到指令块会暂停程序的执行,直到满足指定的条件后,才会继续执行下一个指令块。
等到 <>
参数 |
描述 |
|---|---|
条件 |
此条件必须在程序继续执行下一个指令块之前被满足。 |
示例
当开始
[Move forward until screen pressed, then stop.]
移动 [向前 v]
等到 <屏幕按下了?>
停止移动
重复#
重复 指令块会将其内部的指令块运行设定的次数。
重复 [10]
结束
参数 |
描述 |
|---|---|
次数 |
一个用于设置重复指令块运行次数的整数。 |
示例
当开始
[Move in a square path.]
重复 [4]
将 [向前 v] 移至 [50] [毫米 v] ▶
[右 v] 转 [90] 度 ▶
结束
永久循环#
永久循环 指令块会持续不断地重复运行其内部的指令块,永不停止。
永久循环
结束
参数 |
描述 |
|---|---|
该指令块没有参数。 |
示例
当开始
[Move in a square path forever.]
永久循环
将 [向前 v] 移至 [50] [毫米 v] ▶
[右 v] 转 [90] 度 ▶
结束
重复直到#
重复直到指令块会反复执行其内部的指令块,直到条件判断结果为真时停止。
重复直到 <>
结束
参数 |
描述 |
|---|---|
条件 |
一个在每次循环迭代前都会被评估的表达式或变量。如果计算结果为:
|
示例
当开始
[Repeat until the screen is pressed before turning off the LEDs.]
重复直到 <屏幕按下了?>
设定 [lightall v] LED 颜色为 [红色 v]
结束
设定 [lightall v] LED 颜色为 [灭 v]
当#
只要条件判断结果为真,当 指令块会重复执行其内部的指令块。
当 <>
结束
参数 |
描述 |
|---|---|
条件 |
一个在每次循环迭代前都会被评估的表达式或变量。如果计算结果为:
|
示例
当开始
[Keep the LEDs green while the robot is moving.]
将 [向前 v] 移至 [200] [毫米 v] ◀ 并且不等待
当 <活动起来?>
设定 [lightall v] LED 颜色为 [绿色 v]
结束
设定 [lightall v] LED 颜色为 [灭 v]
如果#
如果条件计算结果为真时,则 结果 指令块执行其内部包含的指令块。
如果 <> 那么
结束
参数 |
描述 |
|---|---|
条件 |
一个在该判断语句运行时将被评估的表达式或变量。如果计算结果为:
|
示例
当开始
[Kick when the screen is pressed.]
永久循环
如果 <屏幕按下了?> 那么
[中 v] 踢出对象
结束
结束
如果/否则#
如果/否则指令块根据其条件判断结果为真或假,来决定执行哪一个内部代码块。
如果 <> 那么
否则
结束
参数 |
描述 |
|---|---|
条件 |
一个在该判断语句运行时将被评估的表达式或变量。如果计算结果为:
|
示例
当开始
[Show one emoji when the screen is touched and a different one when it's not.]
永久循环
如果 <屏幕按下了?> 那么
显示 [emoji_excited v] 看向 [向前 v]
否则
显示 [emoji_bored v] 看向 [向前 v]
结束
结束
如果/否则 如果/否则#
如果/否则如果/否则是一个条件分支指令结构,它根据一系列条件的判断结果,选择执行对应的内部代码块:
如果:如果其条件判断结果为真,则执行其代码块。
否则如果:仅在所有之前的条件判断结果均为假时,才会检查其附加条件。可以使用多个否则如果语句。
否则:仅当所有之前的条件判断结果均为假时,才执行其代码块。
如果 <> 那么
否则如果 <> 那么
否则
结束
参数 |
描述 |
|---|---|
条件 |
一个在该判断语句链执行时将被评估的表达式或变量。第一个条件的计算结果为:
|
示例
当Controller [1 v] 轴改变
[Move the robot forward or reverse based on the position of the joystick.]
如果 <(控制器轴 [1 v] 位置) [math_greater_than v] [0]> 那么
移动 [向前 v]
否则如果 <(控制器轴 [1 v] 位置) [math_less_than v] [0]> 那么
移动 [反 v]
否则
停止移动
结束
退出循环#
退出循环 指令块立即退出循环。
退出循环
参数 |
描述 |
|---|---|
该指令块没有参数。 |
示例
当开始
[Flash LEDs until the screen is pressed.]
永久循环
设定 [lightall v] LED 颜色为 [红色 v]
等待 [0.5] 秒
设定 [lightall v] LED 颜色为 [绿色 v]
等待 [0.5] 秒
如果 <屏幕按下了?> 那么
退出循环
结束
结束
停止程序#
停止程序指令块结束正在运行的程序。
停止程序
参数 |
描述 |
|---|---|
该指令块没有参数。 |
示例
当开始
[Stop the project once the screen is pressed.]
永久循环
设定 [lightall v] LED 颜色为 [红色 v]
等待 [0.5] 秒
设定 [lightall v] LED 颜色为 [绿色 v]
等待 [0.5] 秒
如果 <屏幕按下了?> 那么
停止程序
结束
结束