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 Functionsvoid wait(
double time,
timeUnits units );
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
Väntetiden, som en positiv |
|
|
Enheten som representerar tiden: |
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.
Syntax1 — Räkneslinga — körs ett fast antal gånger.
for (int i = 0; i < count; i++) { // code block }
Parameters2 — Intervallbaserad loop — körs en gång för varje objekt i en samling.
for (type element : collection) { // code block }
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
Antalet gånger som kodblocket kommer att upprepas. |
|
Typnamn |
Datatypen för varje objekt i samlingen (t.ex. |
|
|
Namnet på variabeln som ska innehålla värdet för det aktuella elementet i loopen. |
|
|
Arrayen (eller vektorn) som innehåller de objekt som ska loopas igenom. |
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.
if (condition) {
// code block
}
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
Ett uttryck eller en variabel som utvärderas när satsen körs. Om den är |
Denna kontrollstruktur returnerar inget värde.
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#
Bestämmer vilket inneslutet kodblock som körs baserat på om villkoret är true eller false.
if (condition) {
// code block if true
}
else {
// code block if false
}
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
Ett uttryck eller en variabel som utvärderas när satsen körs. Om den är |
Denna kontrollstruktur returnerar inget värde.
Exampleswhile (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.
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
}
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
Ett uttryck eller en variabel som utvärderas när satsen körs. Det första villkoret, som är |
Denna kontrollstruktur returnerar inget värde.
Notesifkör sitt block om villkoret ärtrue.else ifkontrollerar ytterligare villkor endast om alla föregående villkor ärelse ifMultiplafalsepåståenden kan användas.elsesitt block endast om inget av de föregående villkoren ärtrue.
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.
while (condition) {
// code block
}
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
Ett uttryck eller en variabel som utvärderas före varje iteration. Om den är |
Denna kontrollstruktur returnerar inget värde.
NotesDet kan också användas som ett “Vänta tills” genom att lägga till
!före villkoret, som visas i exemplen nedan.
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.
break;
Denna sats accepterar inga parametrar.
Return ValuesDenna sats returnerar inget värde.
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#
Avslutar ett projekt omedelbart.
SyntaxBrain.programStop();
Denna sats accepterar inga parametrar.
Return ValuesDenna sats returnerar inget värde.
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();
}
}