Secara umum sintaks untuk loop while adalah;
while (ekspresi2) { // statemen di dalam tubuh while } //akhir dari blok statemen while
Perhatikan sintaks di atas, loop while hanya menguji ekspresi2, jika uji ekspresi2 berlogika benar maka statemen di tubuh while dijalankan berulang-ulang sampai uji ekspresi2 berlogika salah. Sebenarnya loop while sama saja dengan loop for, hanya saja ekspresi1 ditempatkan di luar / sebelum loop for. Selain itu pada loop while ekspresi3 ditempatkan di dalam statemen tubuh dari loop while. Supaya lebih jelas kita buat program LED pada loop for pada pembahasan sebelumnya menjadi loop while. Perhatikan sintaks berikut ini:
/* * membuat program nyala LED menggunakan loop while * jika k=1 maka LED1 nyala * jika k=2 maka LED2 nyala * jika k=3 maka LED3 nyala * jika k=4 maka LED4 nyala * jika k=5(kondisi false) maka LED1-LED4 nyala */ #define LED1 4 //mendefinisikan pin 4 sebagai LED1 #define LED2 5 #define LED3 6 #define LED4 7 void setup() { //setting LED1-LED4 sebagai output pinMode (LED1, OUTPUT); pinMode (LED2, OUTPUT); pinMode (LED3, OUTPUT); pinMode (LED4, OUTPUT); int k=1; //ekspresi1 while(k<5){ //ekspresi2 if(k=1){ digitalWrite (LED1, HIGH); digitalWrite (LED2, LOW); digitalWrite (LED3, LOW); digitalWrite (LED4, LOW); delay(1000); } if(k=2){ digitalWrite (LED1, LOW); digitalWrite (LED2, HIGH); digitalWrite (LED3, LOW); digitalWrite (LED4, LOW); delay(1000); } if(k=3){ digitalWrite (LED1, LOW); digitalWrite (LED2, LOW); digitalWrite (LED3, HIGH); digitalWrite (LED4, LOW); delay(1000); } if(k=4){ digitalWrite (LED1, LOW); digitalWrite (LED2, LOW); digitalWrite (LED3, LOW); digitalWrite (LED4, HIGH); delay(1000); } k++; //ekspresi3 } //Menjalankan blok di bawah ini jika k=5(saat loop while dalam keadaan false) digitalWrite (LED1, HIGH); digitalWrite (LED2, HIGH); digitalWrite (LED3, HIGH); digitalWrite (LED4, HIGH); delay(4000); } void loop() { }
Outputnya dapat dilihat pada gambar berikut ini:
Gambar 1. Loop while menggunakan LED
PREVIOUS: Loop For
NEXT: Loop Do While