控制#

介绍#

VEXcode IQ(第二代)中的控制块通过处理循环、条件和延迟块的运行来管理项目的流程。

循环是指计算机反复执行相同的步骤或步骤组,直到收到停止指令为止。条件是计算机用来决定下一步操作的规则。例如,如果传感器检测到物体,机器人就可以向前移动。

以下是可用块的列表:

  • wait – 暂停代码块运行指定的时间段。

  • wait until – 暂停代码块运行,直到满足指定的条件。

  • repeat – 将一组代码块重复指定次数。

  • forever – 无限重复一组方块。

  • 重复直到 – 重复执行一组代码块,直到满足某个条件。

  • while – 当条件为真时,重复执行一组代码块。

  • if – 如果条件为真,则运行一组代码块。

  • if / else – 如果条件为真,则运行一组块,否则运行另一组块。

  • if / else if / else – 根据多种条件运行不同的块集。

  • break – 立即退出 repeatforeverrepeat untilwhile 循环。

  • 停止项目 – 结束项目。

等待#

wait 栈块会在执行下一个代码块之前,暂停当前代码块运行一段时间。

等待堆栈块#
wait (1) seconds

参数

描述

时间

等待时间,以秒为单位,表示为正整数或小数。

例子

启动后,向前移动一秒钟,然后停止所有移动。#
when started
[Move forward for one second, then stop.]
drive [forward v]
wait (1) seconds
stop driving

等到#

等待直到栈块会暂停代码块的运行,直到满足指定的条件后才会执行下一个代码块。

等到堆栈块#
wait until <>

参数

描述

状况

进入下一个区块之前必须满足的条件。

例子

启动后,机器会向前移动,直到按下“脑部检查”按钮,然后停止所有移动。#
when started
[Move forward until a button is pressed, then stop.]
drive [forward v]
wait until <Brain [Check v] button pressed?>
stop driving

重复#

repeat C 代码块会执行其内部代码块设定的次数。

重复 c 块#
repeat [10]
结束

参数

描述

设置重复块运行次数的整数。

例子

when started
[Move in a square path.]
repeat [4]
drive [forward v] for [150] [mm v] ▶
turn [right v] for [90] degrees ▶
结束

永远#

永远运行的C代码块会不停地重复运行它内部的代码块。

永远的c块#
forever
结束

参数

描述

该块没有参数。

例子

启动后,以方形路径连续移动,向前移动 50 毫米,向右旋转 90 度,无限循环。#
when started
[Move in a square path forever.]
forever
drive [forward v] for [150] [mm v] ▶
turn [right v] for [90] degrees ▶
结束

重复直到#

repeat until C 代码块会反复运行其内部的代码块,直到满足指定的条件为止。

重复直到阻塞#
repeat until <>
结束

参数

描述

状况

每次循环前都会检查一个表达式或变量。如果该表达式或变量为False,则代码块继续重复执行;如果该表达式或变量为True,则循环停止。

例子

启动时会发出警报声,直到按下“大脑检查”按钮,然后发出关机声音。#
when started
[Play a sound until a button is pressed.]
repeat until <Brain [Check v] button pressed?>
play sound [siren v]
wait (0.5) seconds
结束
wait (0.5) seconds
play sound [power down v]

尽管#

while C 代码块会在满足指定条件时重复运行其内部的代码块。

当 c 块#
while <>
结束

参数

描述

状况

每次循环前都会检查一个表达式或变量。如果为,则代码块继续重复执行;如果为,则循环停止。

例子

启动时,在传动系统运转时发出警报。#
when started
[Play an alarm while the robot is moving.]
drive [forward v] for [300] [mm v] ◀ and don't wait
while <drive is moving?>
play sound [alarm v]
wait (0.3) seconds
结束

如果#

if C 代码块会在条件为True时运行其内部的代码块。

如果块#
if <> then
结束

参数

描述

状况

语句运行时会检查一个表达式或变量。如果该表达式或变量为,则执行if代码块内的代码块;如果该表达式或变量为,则跳过这些代码块。

例子

启动后,持续检测“大脑检测”按钮是否被按下。如果被按下,机器人将向右转弯。#
when started
[Turn in a circle if a button is pressed.]
forever
if <Brain [Check v] button pressed?> then
turn [right v] for (360) degrees ▶
结束
stop driving
结束

如果/否则#

if / else C 代码块根据条件是还是来决定运行哪一组代码块。

如果则否则块#
if <> then
else
结束

参数

描述

状况

语句运行时会检查一个表达式或变量。如果它为,则执行if代码块内的代码块。如果它为,则执行else代码块内的代码块。

例子

启动时,按下“脑力检查”按钮后,它会反复向右转动;否则,它会发出警报声。#
when started
[Repeatedly play a sound if a button is not pressed.]
forever
if <Brain [Check v] button pressed?> then
turn [right v] for (360) degrees ▶
else
play sound [siren v]
wait (0.5) seconds
结束

如果/否则 如果/否则#

if / else if / else 可扩展 C 代码块根据条件选择运行哪一组代码块:

  • 如果条件评估结果为True,则if 执行其代码块。

  • else if 语句仅在所有先前条件都为 False 时才会检查其他条件。可以使用多个 else if 语句。

  • 否则,仅当前面所有条件均不为时,才会执行其代码块。

如果否则如果否则块#
if <> then
else if <> then
else
结束

参数

描述

状况

语句运行时会检查一个表达式或变量。第一个为的条件会执行该组代码块。如果所有条件都为,则会执行else代码块内的代码块。

例子

启动时,如果按下“大脑右”按钮,则向右转;如果按下“大脑左”按钮,则向左转;否则停止。#
when started
[Turn right if the right button on the brain is pressed, left if the left is pressed, and stop if anything else is pressed.]
forever
if <Brain [Right v] button pressed?> then
turn [right v] for (90) degrees ▶
else if <Brain [Left v] button pressed?> then
turn [left v] for (90) degrees ▶
else
stop driving
结束
结束

休息#

break 代码块会立即退出循环。该代码块可以用于 repeatrepeat untilwhileforever 代码块中。当循环需要根据项目运行过程中发生的事件(例如按钮被按下或传感器检测到物体)提前停止时,break 非常有用。

打破堆栈块#
break

参数

描述

该块没有参数。

例子

启动后,车辆会转动,直到按下“大脑检查”按钮,然后停止行驶并播放关机声音。#
when started
[Stop turning after a button is pressed.]
forever
turn [right v]
if <Brain [Check v] button pressed?> then
break
结束
结束
stop driving
play sound [power down v]

停止项目#

停止项目堆栈块会结束正在运行的项目。

停止项目阻止#
stop project

参数

描述

该块没有参数。

例子

启动后,它会一直旋转,直到按下“脑力检查”按钮,然后停止项目。#
when started
[Stop the project entirely after a button is pressed.]
forever
turn [right v]
if <Brain [Check v] button pressed?> then
stop project
结束
结束
play sound [power down v]