Kontrollera#

Introduktion#

Kontrollen inkluderar funktioner för timing, programflöde, villkorlig logik och projektavslutning. Med dessa kontroller kan du pausa körning, skapa loopar, definiera logiska vägar och avsluta ett program.

Funktioner och nyckelord#

Nedan följer en lista över tillgängliga kontroller, inklusive API-funktioner och C+±nyckelord:

  • wait – Pausar projektet under en viss tid.

  • for – Upprepar ett kodblock ett visst antal gånger.

  • if – Kör ett kodblock om ett villkor är sant.

  • if/else – Kör ett kodblock om ett villkor är sant, eller ett annat block om det är falskt.

  • if/else if/else – Kontrollerar flera villkor i ordning och kör det första blocket vars villkor är sant.

  • while – Upprepar ett kodblock medan ett villkor förblir sant.

  • break – Avslutar den aktuella loopen omedelbart.

  • programStop – Avslutar projektet omedelbart.

wait#

Pausar projektet under en viss tid innan nästa kodrad går vidare.

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

Parameters

Parameter

Typ

Beskrivning

time

double

Väntetiden, som en positiv double.

units

timeUnits

Enheten som representerar tiden: msec (standard) – Millisekunder eller seconds

Return Values

Den här funktionen returnerar inget värde.

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

for#

Upprepar ett kodblock. Räkneformuläret körs ett visst antal gånger; det områdesbaserade formuläret körs en gång för varje objekt i en samling.

Syntax

1 — Räkneslinga — körs ett fast antal gånger.

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

2 — Intervallbaserad loop — körs en gång för varje objekt i en samling.

for (type element : collection) {
   // code block
}

Parameters

Parameter

Typ

Beskrivning

count

int

Antalet gånger som kodblocket kommer att upprepas.

type

Typnamn

Datatypen för varje objekt i samlingen (t.ex. int, double).

element

variable

Namnet på variabeln som ska innehålla värdet för det aktuella elementet i loopen.

collection

array

Arrayen (eller vektorn) som innehåller de objekt som ska loopas igenom.

Return Values

Denna kontrollstruktur returnerar inget värde.

Examples
// Drive in a square
for (int i = 0; i < 4; i++) {
  Drivetrain.driveFor(forward, 100, mm);
  Drivetrain.turnFor(right, 90, degrees);
}

// Drive forward different distances
int distances[] = {100, 150, 200};
for (int d : distances) {
  Drivetrain.driveFor(forward, d, mm);
  wait(0.5, seconds);
}

if#

Kör det bifogade kodblocket om villkoret är true.

Syntax
if (condition) {
  // code block
}

Parameters

Parameter

Typ

Beskrivning

condition

bool

Ett uttryck eller en variabel som utvärderas när satsen körs. Om den är truekörs koden inuti blocket if ; om den är falsehoppas blocket över.

Return Values

Denna kontrollstruktur returnerar inget värde.

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#

Bestämmer vilket inneslutet kodblock som körs baserat på om villkoret är true eller false.

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

Parameters

Parameter

Typ

Beskrivning

condition

bool

Ett uttryck eller en variabel som utvärderas när satsen körs. Om den är truekörs koden inuti if blocket; om den är falsekörs koden inuti else -blocket istället.

Return Values

Denna kontrollstruktur returnerar inget värde.

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#

Väljer vilket inneslutet kodblock som körs baserat på flera villkor.

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

Parameter

Typ

Beskrivning

condition

bool

Ett uttryck eller en variabel som utvärderas när satsen körs. Det första villkoret, som är true avgör vilket block som körs; om inget är true, körs blocket else.

Return Values

Denna kontrollstruktur returnerar inget värde.

Notes
  • if kör sitt block om villkoret är true.

  • else if kontrollerar ytterligare villkor endast om alla föregående villkor är else ifMultipla false påståenden kan användas.

  • else sitt block endast om inget av de föregående villkoren är 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#

Kör kod upprepade gånger så länge villkoret är true.

Syntax
while (condition) {
  // code block
}

Parameters

Parameter

Typ

Beskrivning

condition

bool

Ett uttryck eller en variabel som utvärderas före varje iteration. Om den är truefortsätter loopen; om den är falsestoppas loopen.

Return Values

Denna kontrollstruktur returnerar inget värde.

Notes
  • Det kan också användas som ett “Vänta tills” genom att lägga till ! före villkoret, som visas i exemplen nedan.

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#

Avslutar den aktuella loopen omedelbart. Om det är en kapslad loop, avslutar break den innersta loopen.

Syntax
break;

Parameters

Denna sats accepterar inga parametrar.

Return Values

Denna sats returnerar inget värde.

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

programStop#

Avslutar ett projekt omedelbart.

Syntax
Brain.programStop();

Parameters

Denna sats accepterar inga parametrar.

Return Values

Denna sats returnerar inget värde.

Examples
while (true) {

  // Press the screen to end 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();
  }
}