控制#

介绍#

控制功能包括计时、程序流程、条件逻辑和项目终止等功能。这些控制功能允许您暂停执行、创建循环、定义逻辑路径以及结束程序。

函数和关键词#

以下是可用控件列表,包括 API 函数和 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#

在执行下一行代码之前,暂停执行一段时间。

Available Functions
void wait(
  double time,
  timeUnits units );

Parameters

范围

类型

描述

time

double

等待时间,以正整数表示。

units

timeUnits

The unit to represent the time:

  • msec (default) – Milliseconds
  • seconds

Return Values

此函数不返回值。

Examples
// Stop driving after 1 second
Drivetrain.drive(forward);
wait(1, seconds);
Drivetrain.stop();

for#

遍历代码块指定次数。

Syntax
for (int i = 0; i <= count; i++) {
   // code block
}

Parameters

范围

类型

描述

count

int

代码块将被执行的次数。

Return Values

此控制结构不返回值。

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.

Syntax
if (condition) {
  // code block
}

Parameters

范围

类型

描述

condition

bool

An expression or variable that is evaluated when the statement runs. If it evaluates as true, the code inside the if block executes; if it evaluates as false, the block is skipped.

Return Values

此控制结构不返回值。

Examples
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#

Determines which indented block of code runs based on whether the condition evaluates as true or false.

Syntax
if (condition) {
  // code block if true
}
else {
  // code block if false
}

Parameters

范围

类型

描述

condition

bool

An expression or variable that is evaluated when the statement runs. If it evaluates as true, the code inside the if block executes; if it evaluates as false, the code inside the else block executes instead.

Return Values

此控制结构不返回值。

Examples
while (true) {
  if (Brain.Screen.pressing()) {
    // Turn the screen green when pressed
    Brain.Screen.clearScreen(green);
  } else {
    Brain.Screen.clearScreen();
  }
}

if/else if/else#

根据多个条件选择要运行的缩进代码块。

Syntax
if (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
}

Parameters

范围

类型

描述

condition

bool

An expression or variable that is evaluated when the statement runs. The first condition that evaluates as true determines which block executes; if none are true, the else block runs.

Return Values

此控制结构不返回值。

Notes
  • if runs its block 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 only if none of the previous conditions evaluated as true.

Examples
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.

Syntax
while (condition) {
  // code block
}

Parameters

范围

类型

描述

condition

bool

An expression or variable that is evaluated before each iteration. If it evaluates as true, the loop continues; if it evaluates as false, the loop stops.

Return Values

此控制结构不返回值。

Notes
  • It can also be used like a “Wait until” by adding ! before the condition, as shown in the examples below.

Examples
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#

立即退出循环。

Syntax
break;

Parameters

此语句不接受任何参数。

Return Values

此语句不返回值。

Examples
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;
  }
}