Control#
Introducción#
El control incluye funciones para la temporización, el flujo del programa, la lógica condicional y la finalización del proyecto. Estos controles permiten pausar la ejecución, crear bucles, definir rutas lógicas y finalizar un programa.
Funciones y palabras clave#
A continuación se muestra una lista de los controles disponibles, incluidas las funciones de la API y las palabras clave de C++:
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#
Pausa la ejecución durante un tiempo determinado antes de pasar a la siguiente línea de código.
Available Functionsvoid wait(
double time,
timeUnits units );
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
La cantidad de tiempo a esperar, como un entero positivo. |
|
|
The unit to represent the time:
|
Esta función no devuelve ningún valor.
Examples// Stop driving after 1 second
Drivetrain.drive(forward);
wait(1, seconds);
Drivetrain.stop();
for#
Itera sobre un bloque de código un número determinado de veces.
Syntaxfor (int i = 0; i <= count; i++) {
// code block
}
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
El número de veces que se iterará sobre el bloque de código. |
Esta estructura de control no devuelve ningún valor.
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
}
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
An expression or variable that is evaluated when the statement runs. If it evaluates as |
Esta estructura de control no devuelve ningún valor.
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
}
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
An expression or variable that is evaluated when the statement runs. If it evaluates as |
Esta estructura de control no devuelve ningún valor.
Exampleswhile (true) {
if (Brain.Screen.pressing()) {
// Turn the screen green when pressed
Brain.Screen.clearScreen(green);
} else {
Brain.Screen.clearScreen();
}
}
if/else if/else#
Selecciona qué bloque de código con sangría se ejecuta en función de varias condiciones.
Syntaxif (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
}
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
An expression or variable that is evaluated when the statement runs. The first condition that evaluates as |
Esta estructura de control no devuelve ningún valor.
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
}
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
An expression or variable that is evaluated before each iteration. If it evaluates as |
Esta estructura de control no devuelve ningún valor.
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#
Sale del bucle inmediatamente.
Syntaxbreak;
Esta instrucción no acepta ningún parámetro.
Return ValuesEsta instrucción no devuelve ningún valor.
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;
}
}