Ellenőrzés#

Bevezetés#

A vezérlés olyan függvényeket tartalmaz, amelyek az időzítést, a programfolyamatot, a feltételes logikát és a projekt leállítását szabályozzák. Ezek a vezérlők lehetővé teszik a végrehajtás szüneteltetését, ciklusok létrehozását, logikai útvonalak meghatározását és a program leállítását.

Függvények és kulcsszavak#

Az alábbiakban a rendelkezésre álló vezérlők listája látható, beleértve az API-függvényeket és a C++ kulcsszavakat:

  • wait – Szünetelteti a projektet egy beállított időre.

  • forhez – Egy kódblokkot meghatározott számú alkalommal ismétel.

  • if – Lefuttat egy kódblokkot, ha egy feltétel igaz.

  • if/else – Egy kódblokkot futtat, ha egy feltétel igaz, vagy egy másikat, ha hamis.

  • if/else if/else – Több feltételt sorban ellenőriz, és lefuttatja az első olyan blokkot, amelynek a feltétele igaz.

  • while – Megismétli a kódblokkot, amíg egy feltétel igaz marad.

  • break – Azonnal kilép az aktuális ciklusból.

  • programStop – Azonnal leállítja a projektet.

wait#

Meghatározott ideig szünetelteti a projektet, mielőtt a kód következő sorára ugrana.

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

Parameters

Paraméter

Típus

Leírás

time

double

A várakozási idő, pozitív double dupla értékeként.

units

timeUnits

Az idő mértékegysége: msec (alapértelmezett) – milliszekundum vagy seconds

Return Values

Ez a függvény nem ad vissza értéket.

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

for#

Megismétli a kódblokkot. A számláló űrlap meghatározott számú alkalommal fut le; a tartományalapú űrlap egyszer fut le a gyűjtemény minden elemére.

Syntax

1 — Számláló ciklus — meghatározott számú alkalommal fut le.

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

2 — Tartományalapú ciklus — egy gyűjtemény minden elemére egyszer fut le.

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

Parameters

Paraméter

Típus

Leírás

count

int

A kódblokk ismétlődéseinek száma.

type

Típusnév

A gyűjteményben található egyes elemek adattípusa (pl. int, double).

element

variable

A ciklus aktuális elemének értékét tároló változó neve.

collection

array

A tömb (vagy vektor), amely a cikluson keresztül végigjátszandó elemeket tartalmazza.

Return Values

Ez a vezérlőstruktúra nem ad vissza értéket.

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#

Lefuttatja a mellékelt kódblokkot, ha a feltétel true.

Syntax
if (condition) {
  // code block
}

Parameters

Paraméter

Típus

Leírás

condition

bool

Egy kifejezés vagy változó, amely kiértékelésre kerül az utasítás futtatásakor. Ha true, akkor a if blokkon belüli kód lefut; ha false, akkor a blokk kimarad.

Return Values

Ez a vezérlőstruktúra nem ad vissza értéket.

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#

Meghatározza, hogy melyik mellékelt kódblokk futjon az alapján, hogy a feltétel true vagy false.

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

Parameters

Paraméter

Típus

Leírás

condition

bool

Egy kifejezés vagy változó, amely kiértékelésre kerül az utasítás futtatásakor. Ha true, akkor a if blokkban lévő kód fut le; ha false, akkor az else blokkban lévő kód fut le helyette.

Return Values

Ez a vezérlőstruktúra nem ad vissza értéket.

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#

Több feltétel alapján kiválasztja, hogy melyik mellékelt kódblokk futjon.

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

Paraméter

Típus

Leírás

condition

bool

Egy kifejezés vagy változó, amely kiértékelésre kerül az utasítás futtatásakor. Az első feltétel, amely true határozza meg, hogy melyik blokk fut le; ha egyik sem true, akkor a else blokk fut le.

Return Values

Ez a vezérlőstruktúra nem ad vissza értéket.

Notes
  • if , lefuttatja a blokkját, ha a feltétel igaz, true.

  • else if csak akkor ellenőrzi a további feltételeket, ha az összes előző feltétel hamis. falseTöbbszörös else if utasítások használhatók.

  • else csak akkor futtatja le a blokkját, ha az előző feltételek egyike sem teljesül 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#

Ismételten futtatja a kódot, amíg a feltétel true.

Syntax
while (condition) {
  // code block
}

Parameters

Paraméter

Típus

Leírás

condition

bool

Egy kifejezés vagy változó, amely minden iteráció előtt kiértékelődik. Ha true, a ciklus folytatódik; ha false, a ciklus megáll.

Return Values

Ez a vezérlőstruktúra nem ad vissza értéket.

Notes
  • Használható úgy is, mint egy „Várj eddig” feltétel, ha a feltétel elé ! írunk, ahogy az az alábbi példákban látható.

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#

Azonnal kilép az aktuális ciklusból. Beágyazott ciklus esetén break kilép a legbelső ciklusból.

Syntax
break;

Parameters

Ez az utasítás nem fogad el paramétereket.

Return Values

Ez az utasítás nem ad vissza értéket.

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#

Azonnal befejezi a projektet.

Syntax
Brain.programStop();

Parameters

Ez az utasítás nem fogad el paramétereket.

Return Values

Ez az utasítás nem ad vissza értéket.

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