Kontrol#

Perkenalan#

Kontrol mencakup fungsi untuk pengaturan waktu, alur program, logika kondisional, dan penghentian proyek. Kontrol ini memungkinkan Anda untuk menjeda eksekusi, membuat perulangan, menentukan jalur logika, dan mengakhiri program.

Fungsi dan Kata Kunci#

Berikut adalah daftar kontrol yang tersedia, termasuk fungsi API dan kata kunci C++:

  • wait – Menghentikan sementara proyek untuk jangka waktu tertentu.

  • for – Mengulangi blok kode sejumlah kali tertentu.

  • if – Menjalankan blok kode jika suatu kondisi benar.

  • if/else – Menjalankan satu blok kode jika suatu kondisi benar, atau blok kode yang berbeda jika kondisi tersebut salah.

  • if/else if/else – Memeriksa beberapa kondisi secara berurutan dan menjalankan blok pertama yang kondisinya benar.

  • while – Mengulang blok kode selama suatu kondisi tetap benar.

  • break – Keluar dari loop saat ini segera.

  • programStop – Mengakhiri proyek segera.

wait#

Menghentikan sementara proyek untuk jangka waktu tertentu sebelum melanjutkan ke baris kode berikutnya.

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

Parameters

Parameter

Jenis

Keterangan

time

double

Jumlah waktu tunggu, sebagai bilangan positif double.

units

timeUnits

Satuan untuk mewakili waktu: msec (default) – Milidetik atau seconds

Return Values

Fungsi ini tidak mengembalikan nilai.

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

for#

Mengulangi blok kode. Bentuk penghitungan berjalan sejumlah kali tertentu; bentuk berbasis rentang berjalan sekali untuk setiap item dalam koleksi.

Syntax

1 — Perulangan penghitung — berjalan sejumlah kali yang tetap.

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

2 — Perulangan berbasis rentang — berjalan sekali untuk setiap item dalam koleksi.

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

Parameters

Parameter

Jenis

Keterangan

count

int

Jumlah pengulangan blok kode tersebut.

type

Nama Tipe

Tipe data setiap item dalam koleksi (misalnya int, double).

element

variable

Nama variabel yang akan menyimpan nilai item saat ini dalam perulangan.

collection

array

Array (atau vektor) yang menyimpan item-item yang akan ditelusuri melalui perulangan.

Return Values

Struktur kontrol ini tidak mengembalikan nilai.

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#

Menjalankan blok kode yang terlampir jika kondisinya adalah true.

Syntax
if (condition) {
  // code block
}

Parameters

Parameter

Jenis

Keterangan

condition

bool

Ekspresi atau variabel yang dievaluasi saat pernyataan dijalankan. Jika nilainya true, kode di dalam blok if akan dijalankan; jika nilainya false, blok tersebut akan dilewati.

Return Values

Struktur kontrol ini tidak mengembalikan nilai.

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#

Menentukan blok kode mana yang dijalankan berdasarkan apakah kondisinya true atau false.

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

Parameters

Parameter

Jenis

Keterangan

condition

bool

Ekspresi atau variabel yang dievaluasi saat pernyataan dijalankan. Jika nilainya true, kode di dalam blok if akan dijalankan; jika nilainya false, kode di dalam blok else akan dijalankan sebagai gantinya.

Return Values

Struktur kontrol ini tidak mengembalikan nilai.

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#

Memilih blok kode yang terlampir mana yang akan dijalankan berdasarkan beberapa kondisi.

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

Parameter

Jenis

Keterangan

condition

bool

Ekspresi atau variabel yang dievaluasi saat pernyataan dijalankan. Kondisi pertama yang bernilai true menentukan blok mana yang dijalankan; jika tidak ada yang bernilai true, blok else akan dijalankan.

Return Values

Struktur kontrol ini tidak mengembalikan nilai.

Notes
  • if menjalankan bloknya jika kondisinya true.

  • else if memeriksa kondisi tambahan hanya jika semua kondisi sebelumnya false. Beberapa else if pernyataan dapat digunakan.

  • else menjalankan blok ini hanya jika tidak ada kondisi sebelumnya yang benar 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#

Menjalankan kode berulang kali selama kondisinya true.

Syntax
while (condition) {
  // code block
}

Parameters

Parameter

Jenis

Keterangan

condition

bool

Ekspresi atau variabel yang dievaluasi sebelum setiap iterasi. Jika nilainya true, maka perulangan berlanjut; jika nilainya false, maka perulangan berhenti.

Return Values

Struktur kontrol ini tidak mengembalikan nilai.

Notes
  • Ini juga dapat digunakan seperti “Tunggu sampai” dengan menambahkan ! sebelum kondisi, seperti yang ditunjukkan pada contoh di bawah ini.

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#

Keluar dari loop saat ini dengan segera. Jika berada dalam loop bersarang, break keluar dari loop terdalam.

Syntax
break;

Parameters

Pernyataan ini tidak menerima parameter apa pun.

Return Values

Pernyataan ini tidak mengembalikan nilai.

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#

Mengakhiri proyek secara langsung.

Syntax
Brain.programStop();

Parameters

Pernyataan ini tidak menerima parameter apa pun.

Return Values

Pernyataan ini tidak mengembalikan nilai.

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