← Kembali ke kursus
Pelajaran kursus · C#
Pelajaran 11

While, do-while, dan break

Ulangi selama syarat benar — bahkan ketika jumlahnya tak diketahui.

Pahami konsepnya

for pas ketika jumlah putaran sudah terbet. while lahir untuk sisanya: ulangi selama syaratnya benar, berapa kali pun itu. Sintaksnya telanjang — while (syarat) { ... } — dan seluruh kendali ada di tanganmu: variabel penghitung (bila perlu) kamu siapkan sendiri sebelum loop dan maju sendiri di dalamnya. Lupa maju berarti berputar selamanya, kesalahan paling terkenal di dunia loop.

do-while membalik urutan uji: badannya dijalankan dulu sekali, barulah syarat diperiksa. Hasilnya minimal satu putaran — pas untuk menu yang harus tampil sekencang apa pun keadaannya, atau pertanyaan yang wajib dijawab sebelum boleh lanjut.

break keluar dari loop seketika, dan kombinasi klasiknya adalah loop sengaja tanpa henti: while (true) membaca input terus, dan break menghentikannya begitu pengguna mengetik tanda berhenti seperti "selesai" atau angka 0. Pola "baca sampai tanda stop" ini adalah bentuk paling alami memproses data yang panjangnya ditentukan pengguna.

Coba contoh kode

Console.WriteLine("Ketik angka untuk dijumlahkan, 0 untuk berhenti.");

double total = 0;
int banyak = 0;

while (true)
{
    Console.Write("> ");
    double angka = double.Parse(Console.ReadLine());

    if (angka == 0) break;

    total += angka;
    banyak++;
}

Console.WriteLine($"Total {total} dari {banyak} angka, rata-rata {total / banyak:F2}");

Loop sengaja abadi while (true) dijaga oleh break: angka 0 tak pernah masuk hitungan, hanya memutus loop. Akumulator ganda (total dan banyak) memungkinkan rata-rata di akhir — coba 10, 20, 30, lalu 0. Bila ketukan pertama saja 0, pembaginya nol-nol — pelajaran try-catch dan pemeriksaan menyusul menuntaskan kasus ini.

Menu dengan do-while

string pilihan;
do
{
    Console.WriteLine("[1] Saldo  [2] Setor  [3] Keluar");
    Console.Write("> ");
    pilihan = Console.ReadLine();

    if (pilihan == "1") Console.WriteLine("Saldo: Rp250.000");
    else if (pilihan == "2") Console.WriteLine("Setoran dicatat!");
}
while (pilihan != "3");

Console.WriteLine("Sampai jumpa!");

Menu tampil dulu sekali tanpa syarat — itulah janji do-while — lalu terus berulang selama pilihan bukan "3". Bandingkan versi while-nya: ia harus memeriksa pilihan SEBELUM loop pertama, dan menu tak akan tampil bila variabelnya kebetulan "3" sejak awal.

Latihan singkat

Uji: masukkan `4050` — program harus mencetak persis `4` (jumlah digitnya).