Control#
Introduction#
Control includes methods for timing, program flow, conditional logic, and project termination. These controls let you pause execution, create loops, define logic paths, and end a program.
Below is a list of available controls, including methods and C++ keywords:
wait– Pauses execution for a given number of milliseconds or seconds.for– Repeats code for each item in a sequence.if– Executes code if a condition is true.if/else– Runs different code depending on a condition.if/else if/else– Checks multiple conditions in order.while– Repeats code while a condition is true.break– Exits a loop immediately.programStop– Ends the running program.
wait#
wait pauses for a specific amount of time before moving to the next method.
Usage:
wait(time, units);
Parameters |
Description |
|---|---|
|
The amount of time to wait, as a positive integer. |
|
The unit to represent the time:
|
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Stop driving after 1 second
Drivetrain.drive(forward);
wait(1, seconds);
Drivetrain.stop();
}
for#
for iterates over a code block for a set number of times.
Usage:
for (int i = 0; i <= count; i++) {
}
Parameters |
Description |
|---|---|
|
The amount of times that the code block will be iterated through. |
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Drive in a square
for (int i = 0; i < 4; i++) {
Drivetrain.driveFor(forward, 100, mm);
Drivetrain.turnFor(right, 90, degrees);
}
}
if#
if executes the indented block of code if the condition evaluates as true.
Usage:
if (condition) {
}
Parameters |
Description |
|---|---|
|
An expression or variable that is evaluated when the statement runs. If it evaluates as |
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
while (true) {
if (Brain.Screen.pressing()) {
// Display a message once the screen is pressed
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print("Screen pressed!");
break;
}
wait(5, msec);
}
}
if/else#
if and else determine which indented block of code runs based on whether the condition evaluates as true or false.
Usage:
if (condition) {
}
else {
}
Parameters |
Description |
|---|---|
|
An expression or variable that is evaluated when the statement runs. If it evaluates as |
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
while (true) {
if (Brain.Screen.pressing()) {
// Turn the screen green when pressed
Brain.Screen.clearScreen(green);
} else {
Brain.Screen.clearScreen();
}
}
}
if/else if/else#
The if/else if/else structure selects which indented block of code runs based on conditions:
ifruns its block if the condition evaluates astrue.else ifchecks additional conditions only if all previous conditions evaluated asfalse. Multipleelse ifstatements can be used.elseruns its block only if none of the previous conditions evaluated astrue.
Usage:
if (condition) {
}
else if (condition) {
}
else {
}
Parameters |
Description |
|---|---|
|
An expression or variable that is evaluated when the statement runs. The first condition that evaluates as |
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
while (true) {
// Turn screen blue if pressed on the left half
if (Brain.Screen.pressing() && Brain.Screen.xPosition() < 240) {
Brain.Screen.clearScreen(blue);
// Turn screen green if pressed on the right half
} else if (Brain.Screen.pressing() && Brain.Screen.xPosition() > 240) {
Brain.Screen.clearScreen(green);
} else {
Brain.Screen.clearScreen();
}
wait(20, msec);
}
}
while#
while repeatedly runs methods as long as the condition is true. It can also be used like a “Wait until” by adding ! before the condition, as shown in the example below.
Usage:
while (condition) {
}
Parameters |
Description |
|---|---|
|
An expression or variable that is evaluated before each iteration. If it evaluates as |
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
while (true) {
if (Brain.Screen.pressing()) {
// Turn the screen green whenever it's pressed
Brain.Screen.clearScreen(green);
} else {
Brain.Screen.clearScreen();
}
}
}
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Wait until the screen is pressed to turn it green
while (!Brain.Screen.pressing()) {
wait(20, msec);
}
Brain.Screen.clearScreen(green);
}
break#
break exits a loop immediately.
Usage:
break;
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
while (true) {
// Press the screen to pause on a color
Brain.Screen.clearScreen(red);
wait(500, msec);
if (Brain.Screen.pressing()) {
break;
}
Brain.Screen.clearScreen(green);
wait(500, msec);
if (Brain.Screen.pressing()) {
break;
}
}
}
programStop#
programStop ends a running project.
Usage:
Brain.programStop();
Parameters |
Description |
|---|---|
This method has no parameters. |
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
while (true) {
// Press the screen to stop the project
Brain.Screen.clearScreen(red);
wait(500, msec);
if (Brain.Screen.pressing()) {
Brain.programStop();
}
Brain.Screen.clearScreen(green);
wait(500, msec);
if (Brain.Screen.pressing()) {
Brain.programStop();
}
}
}