Kontrole#
Ievads#
Vadība ietver funkcijas laika noteikšanai, programmas plūsmai, nosacījuma loģikai un projekta pārtraukšanai. Šīs vadības ierīces ļauj apturēt izpildi, izveidot ciklus, definēt loģiskos ceļus un pārtraukt programmu.
Funkcijas un atslēgvārdi#
Zemāk ir pieejamo vadības elementu saraksts, tostarp API funkcijas un C++ atslēgvārdi:
wait– Aptur projektu uz noteiktu laiku.for– Atkārto koda bloku noteiktu reižu skaitu.if– Izpilda koda bloku, ja nosacījums ir patiess.if/else– Izpilda vienu koda bloku, ja nosacījums ir patiess, vai citu bloku, ja tas ir nepatiess.if/else if/else– Pārbauda vairākus nosacījumus pēc kārtas un palaiž pirmo bloku, kura nosacījums ir patiess.while– Atkārto koda bloku, kamēr nosacījums paliek spēkā.break– Nekavējoties iziet no pašreizējās cilpas.programStop– Nekavējoties beidz projektu.
wait#
Aptur projektu uz noteiktu laiku, pirms pāriet uz nākamo koda rindu.
Available Functionsvoid wait(
double time,
timeUnits units );
Parametrs |
Tips |
Apraksts |
|---|---|---|
|
|
Gaidīšanas laiks kā pozitīva |
|
|
Laika attēlošanas mērvienība: |
Šī funkcija neatgriež vērtību.
Examples// Stop driving after 1 second
Drivetrain.drive(forward);
wait(1, seconds);
Drivetrain.stop();
for#
Atkārto koda bloku. Skaitīšanas forma tiek palaista noteiktu reižu skaitu; uz diapazonu balstītā forma tiek palaista vienu reizi katram kolekcijas elementam.
Syntax1 — Skaitīšanas cikls — darbojas fiksētu reižu skaitu.
for (int i = 0; i < count; i++) { // code block }
Parameters2 — Uz diapazonu balstīts cikls — tiek palaists vienu reizi katram kolekcijas elementam.
for (type element : collection) { // code block }
Parametrs |
Tips |
Apraksts |
|---|---|---|
|
|
Koda bloka atkārtošanas reižu skaits. |
|
Tipa nosaukums |
Katra kolekcijas elementa datu tips (piemēram |
|
|
Mainīgā nosaukums, kurā jāglabā cikla pašreizējā elementa vērtība. |
|
|
Masīvs (vai vektors), kurā ir elementi, kas tiks cikliski apstrādāti. |
Šī vadības struktūra neatgriež vērtību.
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#
Palaiž pievienoto koda bloku, ja nosacījums ir true.
if (condition) {
// code block
}
Parametrs |
Tips |
Apraksts |
|---|---|---|
|
|
Izteiksme vai mainīgais, kas tiek novērtēts, kad izpildās priekšraksts. Ja tas ir |
Šī vadības struktūra neatgriež vērtību.
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#
Nosaka, kurš pievienotais koda bloks tiek palaists, pamatojoties uz to, vai nosacījums ir true vai false.
if (condition) {
// code block if true
}
else {
// code block if false
}
Parametrs |
Tips |
Apraksts |
|---|---|---|
|
|
Izteiksme vai mainīgais, kas tiek novērtēts, kad izpildās priekšraksts. Ja tas ir |
Šī vadības struktūra neatgriež vērtību.
Exampleswhile (true) {
if (Brain.Screen.pressing()) {
// Turn the screen green when pressed
Brain.Screen.clearScreen(green);
} else {
Brain.Screen.clearScreen();
}
}
if/else if/else#
Atlasa, kurš iekļautais koda bloks tiks palaists, pamatojoties uz vairākiem nosacījumiem.
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
}
Parametrs |
Tips |
Apraksts |
|---|---|---|
|
|
Izteiksme vai mainīgais, kas tiek novērtēts, kad izpilda priekšrakstu. Pirmais nosacījums, kas ir |
Šī vadības struktūra neatgriež vērtību.
Notesifpalaiž savu bloku, ja nosacījumstrue.else ifpārbauda papildu nosacījumus tikai tad, ja visi iepriekšējie nosacījumi irelse ifVar izmantot vairākusfalseapgalvojumus.elsepalaiž savu bloku tikai tad, ja neviens no iepriekšējiem nosacījumiem nav patiesstrue.
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#
Atkārtoti palaiž kodu, kamēr nosacījums ir true.
while (condition) {
// code block
}
Parametrs |
Tips |
Apraksts |
|---|---|---|
|
|
Izteiksme vai mainīgais, kas tiek novērtēts pirms katras iterācijas. Ja tas ir |
Šī vadības struktūra neatgriež vērtību.
NotesTo var izmantot arī kā “Gaidīt līdz”, pievienojot nosacījuma priekšā
!, kā parādīts tālāk sniegtajos piemēros.
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#
Nekavējoties iziet no pašreizējās cilpas. Ja ligzdotā cilpā, break iziet no iekšējās cilpas.
break;
Šis paziņojums nepieņem nekādus parametrus.
Return ValuesŠis paziņojums neatgriež vērtību.
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;
}
}
programStop#
Nekavējoties beidz projektu.
SyntaxBrain.programStop();
Šis paziņojums nepieņem nekādus parametrus.
Return ValuesŠis paziņojums neatgriež vērtību.
Exampleswhile (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();
}
}