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 Functionsvoid wait(
double time,
timeUnits units );
Parameter |
Jenis |
Keterangan |
|---|---|---|
|
|
Jumlah waktu tunggu, sebagai bilangan positif |
|
|
Satuan untuk mewakili waktu: |
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.
Syntax1 — Perulangan penghitung — berjalan sejumlah kali yang tetap.
for (int i = 0; i < count; i++) { // code block }
Parameters2 — Perulangan berbasis rentang — berjalan sekali untuk setiap item dalam koleksi.
for (type element : collection) { // code block }
Parameter |
Jenis |
Keterangan |
|---|---|---|
|
|
Jumlah pengulangan blok kode tersebut. |
|
Nama Tipe |
Tipe data setiap item dalam koleksi (misalnya |
|
|
Nama variabel yang akan menyimpan nilai item saat ini dalam perulangan. |
|
|
Array (atau vektor) yang menyimpan item-item yang akan ditelusuri melalui perulangan. |
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.
if (condition) {
// code block
}
Parameter |
Jenis |
Keterangan |
|---|---|---|
|
|
Ekspresi atau variabel yang dievaluasi saat pernyataan dijalankan. Jika nilainya |
Struktur kontrol ini tidak mengembalikan nilai.
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#
Menentukan blok kode mana yang dijalankan berdasarkan apakah kondisinya true atau false.
if (condition) {
// code block if true
}
else {
// code block if false
}
Parameter |
Jenis |
Keterangan |
|---|---|---|
|
|
Ekspresi atau variabel yang dievaluasi saat pernyataan dijalankan. Jika nilainya |
Struktur kontrol ini tidak mengembalikan nilai.
Exampleswhile (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.
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 |
Jenis |
Keterangan |
|---|---|---|
|
|
Ekspresi atau variabel yang dievaluasi saat pernyataan dijalankan. Kondisi pertama yang bernilai |
Struktur kontrol ini tidak mengembalikan nilai.
Notesifmenjalankan bloknya jika kondisinyatrue.else ifmemeriksa kondisi tambahan hanya jika semua kondisi sebelumnyafalse. Beberapaelse ifpernyataan dapat digunakan.elsemenjalankan blok ini hanya jika tidak ada kondisi sebelumnya yang benartrue.
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.
while (condition) {
// code block
}
Parameter |
Jenis |
Keterangan |
|---|---|---|
|
|
Ekspresi atau variabel yang dievaluasi sebelum setiap iterasi. Jika nilainya |
Struktur kontrol ini tidak mengembalikan nilai.
NotesIni juga dapat digunakan seperti “Tunggu sampai” dengan menambahkan
!sebelum kondisi, seperti yang ditunjukkan pada contoh di bawah ini.
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.
break;
Pernyataan ini tidak menerima parameter apa pun.
Return ValuesPernyataan ini tidak mengembalikan nilai.
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#
Mengakhiri proyek secara langsung.
SyntaxBrain.programStop();
Pernyataan ini tidak menerima parameter apa pun.
Return ValuesPernyataan ini tidak mengembalikan nilai.
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();
}
}