Valdymas#

Įvadas#

Valdymas apima laiko, programos eigos, sąlyginės logikos ir projekto užbaigimo funkcijas. Šie valdikliai leidžia pristabdyti vykdymą, kurti ciklus, apibrėžti logikos kelius ir užbaigti programą.

Funkcijos ir raktažodžiai#

Žemiau pateikiamas galimų valdiklių sąrašas, įskaitant API funkcijas ir C++ raktinius žodžius:

  • wait – Pristabdo projektą nustatytam laikui.

  • for – Kartoja kodo bloką nustatytą kartų skaičių.

  • if – Paleidžia kodo bloką, jei sąlyga yra teisinga.

  • if/else – Paleidžia vieną kodo bloką, jei sąlyga yra teisinga, arba kitą bloką, jei ji yra klaidinga.

  • if/else if/else – Tikrina kelias sąlygas iš eilės ir paleidžia pirmąjį bloką, kurio sąlyga yra teisinga.

  • while – Kartoja kodo bloką, kol sąlyga lieka teisinga.

  • break – Nedelsiant išeina iš dabartinės kilpos.

  • programStop – Nedelsiant užbaigia projektą.

wait#

Pristabdo projektą tam tikram laikui prieš pereinant prie kitos kodo eilutės.

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

Parameters

Parametras

Tipas

Aprašymas

time

double

Laukimo laikas, pateikiamas kaip teigiamas double.

units

timeUnits

Laiko vienetas: msec (numatytasis) – milisekundės arba seconds

Return Values

Ši funkcija negrąžina reikšmės.

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

for#

Kartoja kodo bloką. Skaičiavimo forma paleidžiama nustatytą skaičių kartų; diapazono pagrindu sukurta forma paleidžiama vieną kartą kiekvienam rinkinio elementui.

Syntax

1 — Skaičiavimo ciklas — vykdomas fiksuotą kartų skaičių.

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

2 — Diapazonu pagrįstas ciklas — paleidžiamas vieną kartą kiekvienam kolekcijos elementui.

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

Parameters

Parametras

Tipas

Aprašymas

count

int

Kodo bloko pakartojimų skaičius.

type

Tipo pavadinimas

Kiekvieno rinkinio elemento duomenų tipas (pvz. int, double).

element

variable

Kintamojo, kuriame bus saugoma dabartinio ciklo elemento reikšmė, pavadinimas.

collection

array

Masyvas (arba vektorius), kuriame yra elementai, kurie bus kartojami cikle.

Return Values

Ši valdymo struktūra negrąžina vertės.

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#

Paleidžia pridėtą kodo bloką, jei sąlyga yra true.

Syntax
if (condition) {
  // code block
}

Parameters

Parametras

Tipas

Aprašymas

condition

bool

Išraiška arba kintamasis, kuris įvertinamas vykdant sakinį. Jei jis yra true, vykdomas kodas bloke if ; jei jis yra false, blokas praleidžiamas.

Return Values

Ši valdymo struktūra negrąžina vertės.

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#

Nustato, kuris pridėtas kodo blokas vykdomas, remiantis tuo, ar sąlyga yra true , ar false.

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

Parameters

Parametras

Tipas

Aprašymas

condition

bool

Išraiška arba kintamasis, kuris įvertinamas vykdant sakinį. Jei jis yra true, vykdomas kodas bloke if ; jei jis yra false, vietoj jo vykdomas kodas bloke else.

Return Values

Ši valdymo struktūra negrąžina vertės.

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#

Pasirenka, kuris pridėtas kodo blokas bus vykdomas pagal kelias sąlygas.

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

Parametras

Tipas

Aprašymas

condition

bool

Išraiška arba kintamasis, kuris įvertinamas vykdant sakinį. Pirmoji sąlyga, kuri yra true nustato, kuris blokas bus vykdomas; jei nė vienas nėra true true, bus vykdomas else.

Return Values

Ši valdymo struktūra negrąžina vertės.

Notes
  • if vykdo savo bloką, jei sąlyga yra teisinga; true.

  • else if tikrina papildomas sąlygas tik tuo atveju, jei visos ankstesnės sąlygos yra falseGalima naudoti kelis else if teiginius.

  • else vykdo savo bloką tik tuo atveju, jei nė viena iš ankstesnių sąlygų nėra teisinga 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#

Pakartotinai vykdo kodą tol, kol sąlyga yra true.

Syntax
while (condition) {
  // code block
}

Parameters

Parametras

Tipas

Aprašymas

condition

bool

Išraiška arba kintamasis, kuris įvertinamas prieš kiekvieną iteraciją. Jei jis yra true, ciklas tęsiasi; jei false, ciklas sustoja.

Return Values

Ši valdymo struktūra negrąžina vertės.

Notes
  • Jis taip pat gali būti naudojamas kaip „Palaukite iki“, pridedant ! prieš sąlygą, kaip parodyta toliau pateiktuose pavyzdžiuose.

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#

Nedelsiant išeina iš dabartinio ciklo. Jei tai įdėtasis ciklas, break išeina iš giliausio ciklo.

Syntax
break;

Parameters

Šis teiginys nepriima jokių parametrų.

Return Values

Šis teiginys negrąžina reikšmės.

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#

Nedelsiant užbaigia projektą.

Syntax
Brain.programStop();

Parameters

Šis teiginys nepriima jokių parametrų.

Return Values

Šis teiginys negrąžina reikšmės.

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