Control#
Introducción#
Control includes functions for timing, program flow, conditional logic, and project termination. These controls let you pause execution, create loops, define logic paths, and end a program.
Functions and Keywords#
A continuación se muestra una lista de controles disponibles, incluidos métodos y palabras clave de C++:
Below is a list of available controls, including API functions and C++ keywords:
wait– Pauses execution for a specified amount of time.for– Repeats code a specific number of times.if– Executes code when a condition evaluates to true.if/else– Executes one block of code if a condition is true, otherwise runs an alternate block.if/else if/else– Evaluates multiple conditions in sequence.while– Repeats code while a condition remains true.break– Immediately exits the nearest enclosing loop.
wait#
Pauses execution for a specific amount of time before moving to the next method.
Available Functionsvoid wait(
double time,
timeUnits units );
Parameter |
Type |
Descripción |
|---|---|---|
|
|
La cantidad de tiempo a esperar, como un entero positivo. |
|
|
The unit to represent the time:
|
This function does not return a value.
Examples// Stop driving after 1 second
Drivetrain.drive(forward);
wait(1, seconds);
Drivetrain.stop();
for#
Iterates over a code block for a set number of times.
Available Functionsfor (int i = 0; i <= count; i++) {
// code block
}
Parameter |
Type |
Descripción |
|---|---|---|
|
|
The number of times that the code block will be iterated through. |
This control structure does not return a value.
Examples// Drive in a square
for (int i = 0; i < 4; i++) {
Drivetrain.driveFor(forward, 100, mm);
Drivetrain.turnFor(right, 90, degrees);
}
if#
Executes the indented block of code if the condition evaluates as true.
if (condition) {
// code block
}
Parameter |
Type |
Descripción |
|---|---|---|
|
|
An expression or variable that is evaluated when the statement runs. If it evaluates as |
This control structure does not return a value.
Exampleswhile (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#
Determines which indented block of code runs based on whether the condition evaluates as true or false.
if (condition) {
// code block if true
}
else {
// code block if false
}
Parameter |
Type |
Descripción |
|---|---|---|
|
|
An expression or variable that is evaluated when the statement runs. If it evaluates as |
This control structure does not return a value.
Exampleswhile (true) {
if (Brain.Screen.pressing()) {
// Turn the screen green when pressed
Brain.Screen.clearScreen(green);
} else {
Brain.Screen.clearScreen();
}
}
if/else if/else#
Selects which indented block of code runs based on multiple conditions.
Available Functionsif (condition) {
// code block if first condition is true
}
else if (condition) {
// code block if second condition is true
}
else {
// code block if no conditions are true
}
Parameter |
Type |
Descripción |
|---|---|---|
|
|
An expression or variable that is evaluated when the statement runs. The first condition that evaluates as |
This control structure does not return a value.
Notesifruns 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.
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#
Repeatedly runs methods as long as the condition is true.
while (condition) {
// code block
}
Parameter |
Type |
Descripción |
|---|---|---|
|
|
An expression or variable that is evaluated before each iteration. If it evaluates as |
This control structure does not return a value.
NotesIt can also be used like a “Wait until” by adding
!before the condition, as shown in the examples below.
while (true) {
if (Brain.Screen.pressing()) {
// Turn the screen green whenever it's pressed
Brain.Screen.clearScreen(green);
} else {
Brain.Screen.clearScreen();
}
}
// Wait until the screen is pressed to turn it green
while (!Brain.Screen.pressing()) {
wait(20, msec);
}
Brain.Screen.clearScreen(green);
break#
Exits a loop immediately.
Available Functionsbreak;
This statement does not accept any parameters.
Return ValuesThis statement does not return a value.
Exampleswhile (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;
}
}