控制#
介绍#
VEXcode VR 中的控制块通过处理循环、条件、延迟和停止执行来管理项目的流程。
以下是可用模块列表:
wait – 暂停执行指定时长。
wait until – 暂停执行,直到满足指定的条件。
repeat – 将封闭的代码块重复指定次数。
forever – 无限重复封闭的块。
重复直到 – 重复执行封闭的代码块,直到满足某个条件。
while – 当条件为真时,重复执行封闭的代码块。
if – 如果条件为真,则运行封闭的代码块。
if / else – 如果条件为真,则运行一组代码块;否则,运行另一组代码块。
if / else if / else – 根据多个条件运行不同的代码块集。
break – 立即退出 repeat、forever、repeat until 或 while 循环。
停止项目 – 结束项目的执行。
等待#
等待 代码块会在执行下一个代码块之前暂停一段时间。
等待 (1) 秒
参数 |
描述 |
|---|---|
时间 |
等待时间,以秒为单位,表示为正整数或小数。 |
例子
当开始 :: hat events
[Move forward for one second, then stop.]
驱动 [向前 v]
等待 (1) 秒
驱动停止
等到#
wait until 代码块会暂停执行,直到满足指定的条件后再继续执行下一个代码块。
等到 <>
参数 |
描述 |
|---|---|
状况 |
进入下一模块之前必须满足的条件。 |
例子
当开始 :: hat events
[Move forward until a button is pressed, then stop.]
驱动 [向前 v]
等到 <[LeftBumper v] 按下了?>
驱动停止
重复#
repeat 代码块会按照设定的次数运行其内部的代码块。
重复 [10]
结束
参数 |
描述 |
|---|---|
时代 |
一个整数,用于设置重复代码块运行的次数。 |
例子
当开始 :: hat events
[Move in a square path.]
重复 [4]
驱动 [向前 v] [150] [毫米 v] ▶
[右 v] 转 [90] 度 ▶
结束
永远#
无限循环 代码块会不停地重复运行它内部的代码块。
永久循环
结束
参数 |
描述 |
|---|---|
此代码块没有参数。 |
例子
当开始 :: hat events
[Move in a square path forever.]
永久循环
驱动 [向前 v] [150] [毫米 v] ▶
[右 v] 转 [90] 度 ▶
结束
重复直到#
repeat until 代码块会在条件评估为 False 时重复执行其包含的代码块。
重复直到 <>
结束
参数 |
描述 |
|---|---|
状况 |
每次迭代前都要计算的表达式或变量。如果计算结果为:
|
例子
当开始 :: hat events
[Move the pen until the bumper is pressed.]
驱动 [向前 v]
重复直到 <[LeftBumper v] 按下了?>
移动笔 [向下 v]
等待 (0.5) 秒
移动笔 [向上 v]
等待 (0.5) 秒
结束
等待 (0.5) 秒
驱动停止
尽管#
当条件为真时,while 代码块会重复执行其包含的代码块。
当 <>
结束
参数 |
描述 |
|---|---|
状况 |
每次迭代前都要计算的表达式或变量。如果计算结果为:
|
例子
当开始 :: hat events
[Display a message while moving.]
驱动 [向前 v] [300] [毫米 v] ◀ 并且不等待
当 <驱动进行中?>
打印 [Moving...] ▶
等待 (0.1) 秒
清除所有行
结束
打印 [Done!] ▶
如果#
如果条件判断为真,则 if 代码块执行其包含的代码块。
如果 <> 那么
结束
参数 |
描述 |
|---|---|
状况 |
语句运行时会计算的表达式或变量。如果计算结果为:
|
例子
当开始 :: hat events
[Turn in a circle if the bumper is pressed.]
驱动 [向前 v]
永久循环
如果 <[LeftBumper v] 按下了?> 那么
驱动 [反 v] (200) [毫米 v] ▶
[右 v] 转 (360) 度 ▶
结束
驱动停止
结束
如果/否则#
if / else 代码块根据条件评估结果为真或假来决定执行哪个封闭的代码块。
如果 <> 那么
否则
结束
参数 |
描述 |
|---|---|
状况 |
语句运行时会计算的表达式或变量。如果计算结果为:
|
例子
当开始 :: hat events
[If bumper pressed, reverse and turn right.]
永久循环
如果 <[LeftBumper v] 按下了?> 那么
驱动 [反 v] (100) [毫米 v] ▶
[右 v] 转 (90) 度 ▶
否则
驱动 [向前 v]
结束
如果/否则如果/否则#
if / else if / else 代码块结构根据条件选择执行哪个封闭的代码块:
if 语句会在条件判断为真时执行其代码块。
else if 语句仅在所有先前条件都为 False 时才会检查其他条件。可以使用多个 else if 语句。
否则,仅当前面所有条件均不为真时,才会执行其代码块。
如果 <> 那么
否则如果 <> 那么
否则
结束
参数 |
描述 |
|---|---|
状况 |
语句运行时会被求值的表达式或变量。第一个求值为:
|
例子
当开始 :: hat events
[Turn right if the an Eye Sensor detects red, left if it detects green, and continue driving if anything else.]
永久循环
如果 <[FrontEye v] 测得 [红色 v]?> 那么
[右 v] 转 (90) 度 ▶
否则如果 <[FrontEye v] 测得 [绿色 v]?> 那么
[左 v] 转 (90) 度 ▶
否则
驱动 [向前 v]
结束
结束
休息#
break 代码块会立即退出循环。
退出循环
参数 |
描述 |
|---|---|
此代码块没有参数。 |
例子
当开始 :: hat events
[Stop turning after a button is pressed.]
永久循环
驱动 [向前 v]
如果 <[LeftBumper v] 按下了?> 那么
退出循环
结束
结束
驱动停止
停止项目#
停止项目 代码块会结束正在运行的项目。
停止程序
参数 |
描述 |
|---|---|
此代码块没有参数。 |
例子
当开始 :: hat events
[Stop the project entirely after a button is pressed.]
永久循环
驱动 [向前 v]
如果 <[LeftBumper v] 按下了?> 那么
停止程序
结束
结束