Control#
Introduction#
The Control blocks in VEXcode VR manage the flow of a project by handling loops, conditions, delays, and stopping execution.
Below is a list of available blocks:
wait – Pauses execution for a specific duration.
wait until – Pauses execution until a specified condition is met.
repeat – Repeats enclosed blocks a specific number of times.
forever – Repeats enclosed blocks indefinitely.
repeat until – Repeats enclosed blocks until a condition is met.
while – Repeats enclosed blocks while a condition remains true.
if – Runs enclosed blocks if a condition is true.
if / else – Runs one set of blocks if a condition is true, otherwise runs another.
if / else if / else – Runs different sets of blocks depending on multiple conditions.
break – Exits a repeat, forever, repeat until, or while loop immediately.
stop project – Ends the execution of the project.
wait#
The wait block pauses for a specific amount of time before moving to the next block.
wait (1) seconds
Parameters |
Description |
|---|---|
time |
The amount of time to wait, as a positive integer or decimal in seconds. |
Example
when started :: hat events
[Move forward for one second, then stop.]
drive [forward v]
wait (1) seconds
stop driving
wait until#
The wait until block pauses execution until a specified condition is met before proceeding to the next block.
wait until <>
Parameters |
Description |
|---|---|
condition |
The condition that must be met before moving on to the next block. |
Example
when started :: hat events
[Move forward until a button is pressed, then stop.]
drive [forward v]
wait until <[LeftBumper v] pressed?>
stop driving
repeat#
The repeat block runs the blocks inside it a set number of times.
repeat [10]
end
Parameters |
Description |
|---|---|
times |
A whole number that sets how many times the repeat block runs. |
Example
when started :: hat events
[Move in a square path.]
repeat [4]
drive [forward v] for [150] [mm v] ▶
turn [right v] for [90] degrees ▶
end
forever#
The forever block keeps running the blocks inside it again and again without stopping.
forever
end
Parameters |
Description |
|---|---|
This block has no parameters. |
Example
when started :: hat events
[Move in a square path forever.]
forever
drive [forward v] for [150] [mm v] ▶
turn [right v] for [90] degrees ▶
end
repeat until#
The repeat until block executes the enclosed blocks repeatedly while the condition evaluates as False.
repeat until <>
end
Parameters |
Description |
|---|---|
condition |
An expression or variable that is evaluated before each iteration. If it evaluates as:
|
Example
when started :: hat events
[Move the pen until the bumper is pressed.]
drive [forward v]
repeat until <[LeftBumper v] pressed?>
move pen [down v]
wait (0.5) seconds
move pen [up v]
wait (0.5) seconds
end
wait (0.5) seconds
stop driving
while#
The while block executes the enclosed blocks repeatedly while the condition evaluates as True.
while <>
end
Parameters |
Description |
|---|---|
condition |
An expression or variable that is evaluated before each iteration. If it evaluates as:
|
Example
when started :: hat events
[Display a message while moving.]
drive [forward v] for [300] [mm v] ◀ and don't wait
while <drive is moving?>
print [Moving...] ▶
wait (0.1) seconds
clear all rows
end
print [Done!] ▶
if#
The if block executes the enclosed block of code if the condition evaluates as True.
if <> then
end
Parameters |
Description |
|---|---|
condition |
An expression or variable that is evaluated when the statement runs. If it evaluates as:
|
Example
when started :: hat events
[Turn in a circle if the bumper is pressed.]
drive [forward v]
forever
if <[LeftBumper v] pressed?> then
drive [reverse v] for (200) [mm v] ▶
turn [right v] for (360) degrees ▶
end
stop driving
end
if / else#
The if / else block determines which enclosed block of code runs based on whether the condition evaluates as True or False.
if <> then
else
end
Parameters |
Description |
|---|---|
condition |
An expression or variable that is evaluated when the statement runs. If it evaluates as:
|
Example
when started :: hat events
[If bumper pressed, reverse and turn right.]
forever
if <[LeftBumper v] pressed?> then
drive [reverse v] for (100) [mm v] ▶
turn [right v] for (90) degrees ▶
else
drive [forward v]
end
if / else if / else#
The if / else if / else block structure selects which enclosed block of code runs based on conditions:
if runs its block of code if the condition evaluates as True.
else if checks additional conditions only if all previous conditions evaluated as False. Multiple else if statements can be used.
else runs its block of code only if none of the previous conditions evaluated as True.
if <> then
else if <> then
else
end
Parameters |
Description |
|---|---|
condition |
An expression or variable that is evaluated when the statement runs. The first condition that evaluates as:
|
Example
when started :: hat events
[Turn right if the an Eye Sensor detects red, left if it detects green, and continue driving if anything else.]
forever
if <[FrontEye v] detects [red v]?> then
turn [right v] for (90) degrees ▶
else if <[FrontEye v] detects [green v]?> then
turn [left v] for (90) degrees ▶
else
drive [forward v]
end
end
break#
The break block exits a loop immediately.
break
Parameters |
Description |
|---|---|
This block has no parameters. |
Example
when started :: hat events
[Stop turning after a button is pressed.]
forever
drive [forward v]
if <[LeftBumper v] pressed?> then
break
end
end
stop driving
stop project#
The stop project block ends a running project.
stop project
Parameters |
Description |
|---|---|
This block has no parameters. |
Example
when started :: hat events
[Stop the project entirely after a button is pressed.]
forever
drive [forward v]
if <[LeftBumper v] pressed?> then
stop project
end
end