Pelajaran 2: Menggunakan Perulangan While
Dalam Pelajaran ini, Anda akan membuat proyek menggunakan Bumper Sensor dan loop while. Dalam tantangan mini, Anda akan menerapkan keterampilan ini untuk menavigasi dari awal Wall Maze hingga huruf 'A'.

Hasil belajar
- Identifikasi bahwa perintah yang tidak menunggu akan membuat proyek terus berlanjut meskipun perilaku perintah tersebut belum selesai.
- Identifikasi bahwa perintah menunggu melengkapi perilaku sebelum melanjutkan proyek.
- Identifikasi bahwa loop whileakan berulang kali memeriksa kondisi Boolean, dan tidak akan berpindah ke perintah berikutnya hingga kondisi melaporkan Benar.
- Identifikasi bahwa loop whiledigunakan dengan perintah non-menunggu (misalnya drive) untuk memeriksa kondisi sensor.
- Identifikasi bahwa kata kunci bukanmembalikkan nilai kondisi Boolean dari Benar ke Salah atau Salah ke Benar.
- Identifikasi bahwa perintah left_bumper.presseddan right_bumper.pressedmengembalikan nilai Benar atau Salah dalam loop while.
- Jelaskan cara membuat proyek yang melibatkan Robot VR yang bergerak maju hingga Sensor Bumper ditekan.
Perulangan While
Perulangan while menerima kondisi Boolean. Sementaraloop berulang kali memeriksa kondisi Boolean dan mengontrol aliran proyek. Perulangan whileakan terus berulang selama kondisinya& Benar. Perulangan while akan keluar dari perulangan dan berpindah ke perintah berikutnya di luar perulangan setelah kondisi dilaporkan sebagai Salah.

Pada dasarnya, perulangansementaramemberi tahu Robot VR untuk terus melakukan perilakusementarakondisi tertentu terpenuhi. Logikanya mirip dengan skenario ini:Saatmatahari bersinar, pergilah bermain di luar.Apa yang akan Anda lakukan? Kondisi "matahari bersinar" menentukan di mana Anda seharusnya berada. Ketika matahari bersinar, kondisinya Benar, jadi Anda bermain di luar. Ketika matahari terbenam, kondisi itu Salah, jadi Anda akan kembali ke dalam.

Perulangan While dan Masalah Labirin Dinding
Logika yang sama berlaku untuk Robot VR di Wall Maze. SelamaSensor Bumper tidak ditekan, Robot VR harus tetap melaju ke depan. Bila ditekan, ia akan berhenti atau berputar. Dengan menggunakan perulanganwhilebersama dengan perintah yang tidak menunggu, seperti drive, kita dapat mengodekan Robot VR untuk melakukan hal tersebut. Akan tetapi, perintah Bumper Sensor menggunakan kondisi Bumper Sensor ditekan (left_bumper.pressedatau right_bumper.pressed)Untuk mengode Robot VR agar melaju saat Bumper Sensor ditekanbukan, kita perlu menggunakan operatorbukan.
def main():
sementara tidak kondisi:
tunggu (5, MSEC)Untuk Informasi Anda
Perintah tidak menunggu dan menunggu menentukan kapan perintah berikutnya memulai suatu perilaku. Perintah menunggu, seperti drive_fordan turn_for, menyelesaikan perilakunya sebelum berpindah ke perintah berikutnya dalam proyek. Perintah yang tidak menunggu, seperti drivedan turn, terus berpindah ke perintah berikutnya dalam proyek meskipun perilaku perintah yang tidak menunggu belum selesai.
Perintah Menunggu
drivetrain.drive_for(MAJU, 200, MM)
drivetrain.turn_for(KANAN, 90, DERAJAT)Perintah Non-Menunggu
drivetrain.drive(MAJU)
drivetrain.belok(KANAN)Kata Kunci Bukan
Kata kuncinotbiasanya digunakan dengan loopwhileuntuk membuat perintah di dalam loop dieksekusi saat kondisi mengembalikan False. Untuk menggunakan contoh 'matahari bersinar', efek yang sama dapat dicapai dengan menggunakan operatorbukan. Saat matahari bersinarbukan, masuklah ke dalam.

Di Wall Maze, ini berguna agar kita dapat membuat kode pada Robot VR sehingga saat Bumper Sensor ditekan padabukan, ia akan bergerak maju. Kondisinya masih 'jika Sensor Bumper ditekan', tetapi dengan cara ini, saat melaporkan Salah (tidak ditekan), aliran proyek tetap dalam lingkaran. Saat Bumper Sensor ditekan, kondisinya adalah Benar, sehingga proyek akan keluar dari loop.
Untuk Informasi Anda
Kata kunci not adalah operator logika yang membalikkan nilai Boolean. Menempatkan kata kuncibukandi depan perintah yang mengembalikan nilai Boolean akan membalikkan True menjadi False, dan False menjadi True. Misalnya, bayangkan Sensor Bumper Kiri pada Robot VR ditekan, dan perintah left_bumper.pressedmengembalikan True. Kata kuncibukanakan membalikkan nilai Boolean, dan membuat ekspresi ini mengembalikan False.
tidak bemper kiri.ditekan()Bergantung pada data sensor yang Anda gunakan, kata kuncibukanmungkin diperlukan untuk membuat Robot VR menjalankan perilaku yang diinginkan.
def main():
sementara tidak bemper kiri.ditekan():
drivetrain.berkendara(MAJU)
tunggu(5, MSEC)
drivetrain.berhenti()Membangun Proyek dengan LoopWhile dan Sensor Bumper
Beri Nama dan Simpan Proyek
- Buka proyek teks baru dan pilihWall Maze Playgroundsaat diminta.

-
Beri nama proyek Unit4Lesson2.

-
Seret atau ketik perintah whileke dalam ruang kerja untuk mengganti perintah Drivetrain yang secara otomatis terisi sebagai bagian dari proyek Teks baru. Perhatikan ada perintah wait di dalam loop. Jangan hapus perintah wait, itu akan memastikan Robot VR mengeksekusi proyek dengan benar. Proyek Anda akan terlihat seperti ini:
def main(): sementara kondisi: tunggu(5, MSEC) -
Ketik operatorbukansetelah 'while' dalam perintahwhile. Proyek Anda sekarang akan terlihat seperti ini:
def main(): sementara tidak kondisi: tunggu(5, MSEC) -
Seret atau ketik perintah left_bumper.pressedke dalam 'kondisi' loop while. Perintah di dalam loop akan dieksekusi saat kondisinya tidak Benar, artinya saat Sensor Bumper Kiri ditekan padabukan. Proyek Anda sekarang akan terlihat seperti ini:
def main(): sementara tidak left_bumper.pressed(): tunggu(5, MSEC) -
Di dalam loop while, seret atau ketik perintah drive. Pastikan perintahdrivedan perintahwaitdiindentasi dengan benar dalam loopwhile, sehingga loop berjalan sebagaimana mestinya. Anda dapat menggunakan garis panduan sebagai bantuan visual. Proyek Anda sekarang akan terlihat seperti ini:
def main(): sementara tidak bemper kiri.ditekan(): drivetrain.drive(MAJU) tunggu(5, MSEC) -
Seret atau ketik perintah stop di luar loop while. Pastikan perintahstopselaras dengan loopwhile, dan tidak menjorok, sehingga berjalan di luar loop sebagaimana dimaksud. Anda dapat menggunakan garis panduan sebagai bantuan visual. Proyek Anda sekarang akan terlihat seperti ini:
def main(): sementara tidak bemper kiri.ditekan(): drivetrain.berkendara(MAJU) tunggu(5, MSEC) drivetrain.berhenti() - Buka Jendela Taman Bermain jika belum terbuka. PastikanWall Maze Playgroundterbuka.
- Jalankan proyeknya.
- Saksikan Robot VR melaju dari awal Wall Maze dan berhenti saat Bumper Sensor ditekan oleh dinding.
- Perintah Drive memungkinkan Robot VR untuk terus melaju ke depan sambil memeriksa kondisi Sensor Bumper dengan perintah Bumper Kiri Ditekan. Setelah perintah left_bumper.pressedmelaporkan sebagai Benar, Robot VR akan berpindah ke perintah berikutnya di luar loop dan berhenti melaju.
Pilih tombol Berikutnya untuk melanjutkan sisa Pelajaran ini.