C++ While dan Do-While Loop – Menguasai Pengulangan dalam Kode Anda
C++ While dan Do-While Loop – Menguasai Pengulangan dalam Kode Anda
Panduan ini menjelaskan while dan do-while loops dalam C++ dengan contoh, flowchart, dan tips praktik terbaik yang jelas.
Perulangan adalah dasar pemrograman yang efisien: mereka memungkinkan Anda mengeksekusi blok kode berulang kali tanpa menyalin baris. Baik Anda mengulangi rentang atau menunggu masukan pengguna, memilih jenis perulangan yang tepat sangat penting untuk kode yang mudah dibaca dan dipelihara.
Dalam C++ ada tiga konstruksi perulangan utama:
for loop – ideal ketika jumlah iterasi diketahui.
while loop – dieksekusi selama kondisi tetap benar.
do…while loop – menjamin setidaknya satu eksekusi sebelum kondisi diuji.
Sementara perulangan for telah dibahas dalam tutorial sebelumnya, artikel ini difokuskan pada perulangan while dan do…while, dengan membahas sintaks, alur eksekusi, kesalahan umum, dan kasus penggunaan dunia nyata.
C++ While Loop
Sintaks perulangan while sederhana:
while (condition) { // body of the loop }
Perulangan mengevaluasi condition sebelum setiap iterasi:
Jika condition adalah true, tubuh perulangan berjalan.
Kondisi dievaluasi ulang setelah tubuh selesai.
Proses berulang hingga condition menjadi false, pada titik itu perulangan keluar.
// C++ Program to print numbers from 1 to 5 #include <iostream> using namespace std; int main() { int i = 1; // while loop from 1 to 5 while (i <= 5) { cout << i << " "; ++i; } return 0; }
Output
1 2 3 4 5
Di bawah ini adalah rincian langkah demi langkah eksekusi program:
Iterasi
Variabel
i <= 5
Aksi
1st
i = 1
true
1 dicetak, i menjadi 2
2nd
i = 2
true
2 dicetak, i menjadi 3
3rd
i = 3
true
3 dicetak, i menjadi 4
4th
i = 4
true
4 dicetak, i menjadi 5
5th
i = 5
true
5 dicetak, i menjadi 6
6th
i = 6
false
Perulangan diakhiri
Contoh 2: Jumlah Bilangan Positif Hanya
// program to find the sum of positive numbers // if the user enters a negative number, the loop ends // the negative number entered is not added to the sum #include <iostream> using namespace std; int main() { int number; int sum = 0; // take input from the user cout << "Masukkan bilangan: "; cin >> number; while (number >= 0) { // add all positive numbers sum += number; // take input again if the number is positive cout << "Masukkan bilangan: "; cin >> number; } // display the sum cout << "\nJumlahnya adalah " << sum << endl; return 0; }
Dalam contoh ini, program terus meminta pengguna memasukkan bilangan. Selama bilangan yang dimasukkan non-negatif, bilangan tersebut ditambahkan ke sum. Masukan negatif menandakan akhir perulangan, dan jumlah akhir ditampilkan.
C++ do…while Loop
Perulangan do…while berbeda dari while dengan mengeksekusi tubuhnya setidaknya sekali sebelum kondisi dievaluasi. Ini berguna ketika tubuh perulangan harus berjalan sebelum kondisi keluar dapat diperiksa.
Sintaksnya adalah:
do { // body of loop } while (condition);
Alur eksekusi:
Tubuh berjalan.
Kondisi dievaluasi.
Jika true, tubuh berulang.
Proses berlanjut hingga kondisi menjadi false.
Flowchart of a do…while Loop
Contoh 3: Menampilkan Angka dari 1 hingga 5
// C++ Program to print numbers from 1 to 5 #include <iostream> using namespace std; int main() { int i = 1; // do…while loop from 1 to 5 do { cout << i << " "; ++i; } while (i <= 5); return 0; }
Output
1 2 3 4 5
Langkah eksekusi:
Iterasi
Variabel
i <= 5
Aksi
Initial
i = 1
Belum diperiksa
1 dicetak, i menjadi 2
1st
i = 2
true
2 dicetak, i menjadi 3
2nd
i = 3
true
3 dicetak, i menjadi 4
3rd
i = 4
true
4 dicetak, i menjadi 5
4th
i = 5
true
5 dicetak, i menjadi 6
5th
i = 6
false
Perulangan diakhiri
Contoh 4: Jumlah Bilangan Positif Hanya
// program to find the sum of positive numbers // If the user enters a negative number, the loop ends // the negative number entered is not added to the sum #include <iostream> using namespace std; int main() { int number = 0; int sum = 0; do { sum += number; // take input from the user cout << "Masukkan bilangan: "; cin >> number; } while (number >= 0); // display the sum cout << "\nJumlahnya adalah " << sum << endl; return 0; }
Ketika masukan pertama negatif, perulangan dieksekusi sekali dan keluar segera, sehingga sum tidak berubah.
Perulangan Tak Terbatas
Perulangan tak terbatas terjadi ketika kondisi perulangan tidak pernah mengevaluasi false. Ini dapat terjadi secara sengaja (misalnya, server yang berjalan selamanya) atau secara tidak sengaja (kesalahan logika).
// infinite while loop while (true) { // body of the loop }
Demikian pula, perulangan do…while dapat tak terbatas:
int count = 1; do { // body of loop } while (count == 1);
Perulangan seperti ini mengonsumsi sumber daya sampai program dihentikan atau sistem kehabisan memori.
for vs while Loops
Perulangan for paling sesuai ketika jumlah iterasi diketahui sebelumnya:
// loop iterated 5 times for (int i = 1; i <= 5; ++i) { // body of the loop }
Di sisi lain, perulangan while dan do…while ideal ketika jumlah iterasi bergantung pada data runtime, seperti masukan pengguna atau hasil kondisi kompleks.