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 Functionsvoid wait(
double time,
timeUnits units );
Parametras |
Tipas |
Aprašymas |
|---|---|---|
|
|
Laukimo laikas, pateikiamas kaip teigiamas |
|
|
Laiko vienetas: |
Š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.
Syntax1 — Skaičiavimo ciklas — vykdomas fiksuotą kartų skaičių.
for (int i = 0; i < count; i++) { // code block }
Parameters2 — Diapazonu pagrįstas ciklas — paleidžiamas vieną kartą kiekvienam kolekcijos elementui.
for (type element : collection) { // code block }
Parametras |
Tipas |
Aprašymas |
|---|---|---|
|
|
Kodo bloko pakartojimų skaičius. |
|
Tipo pavadinimas |
Kiekvieno rinkinio elemento duomenų tipas (pvz. |
|
|
Kintamojo, kuriame bus saugoma dabartinio ciklo elemento reikšmė, pavadinimas. |
|
|
Masyvas (arba vektorius), kuriame yra elementai, kurie bus kartojami cikle. |
Š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.
if (condition) {
// code block
}
Parametras |
Tipas |
Aprašymas |
|---|---|---|
|
|
Išraiška arba kintamasis, kuris įvertinamas vykdant sakinį. Jei jis yra |
Ši valdymo struktūra negrąžina vertės.
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#
Nustato, kuris pridėtas kodo blokas vykdomas, remiantis tuo, ar sąlyga yra true , ar false.
if (condition) {
// code block if true
}
else {
// code block if false
}
Parametras |
Tipas |
Aprašymas |
|---|---|---|
|
|
Išraiška arba kintamasis, kuris įvertinamas vykdant sakinį. Jei jis yra |
Ši valdymo struktūra negrąžina vertės.
Exampleswhile (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.
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
}
Parametras |
Tipas |
Aprašymas |
|---|---|---|
|
|
Išraiška arba kintamasis, kuris įvertinamas vykdant sakinį. Pirmoji sąlyga, kuri yra |
Ši valdymo struktūra negrąžina vertės.
Notesifvykdo savo bloką, jei sąlyga yra teisinga;true.else iftikrina papildomas sąlygas tik tuo atveju, jei visos ankstesnės sąlygos yrafalseGalima naudoti keliselse ifteiginius.elsevykdo savo bloką tik tuo atveju, jei nė viena iš ankstesnių sąlygų nėra teisingatrue.
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.
while (condition) {
// code block
}
Parametras |
Tipas |
Aprašymas |
|---|---|---|
|
|
Išraiška arba kintamasis, kuris įvertinamas prieš kiekvieną iteraciją. Jei jis yra |
Ši valdymo struktūra negrąžina vertės.
NotesJis taip pat gali būti naudojamas kaip „Palaukite iki“, pridedant
!prieš sąlygą, kaip parodyta toliau pateiktuose pavyzdžiuose.
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.
break;
Šis teiginys nepriima jokių parametrų.
Return ValuesŠis teiginys negrąžina reikšmės.
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#
Nedelsiant užbaigia projektą.
SyntaxBrain.programStop();
Šis teiginys nepriima jokių parametrų.
Return ValuesŠis teiginys negrąžina reikšmės.
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();
}
}