CodeBlanks Logo Icon CodeBlanks

while döngüsü

while ile koşul sağlandıkça çalışan döngü kurarsın.

while döngüsü

while koşul doğru olduğu sürece döner; koşul her turun başında denetlenir:

let mut geri = 3;
while geri > 0 {
    println!("{geri}...");
    geri -= 1;
}
println!("kalkış!");

Dizin ile bir koleksiyonu gezmek için while yerine for tercih edilir; dizin hatası riski ve sınır denetimi maliyeti ortadan kalkar.

Basamak sayma

while, kaç tur süreceği önceden bilinmeyen işlemler için doğaldır. Örneğin bir sayının basamaklarını toplamak:

let mut n = 4096;
let mut toplam = 0;
while n > 0 {
    toplam += n % 10;
    n /= 10;
}
println!("{toplam}");  // 19

Uygulama Basamak sayısı

fn basamak(mut n: u64) -> u32 yaz: while n >= 10 döngüsüyle sayıyı 10'a bölerek basamak sayısını hesaplasın (0 için 1). basamak(0), basamak(7) ve basamak(123456) sonuçlarını tek satırda yazdır.

Başlangıç kodu

main.rs
fn main() {
    // buraya yaz
}

Örnek çözüm

main.rs
fn basamak(mut n: u64) -> u32 {
    let mut sayi = 1;
    while n >= 10 {
        n /= 10;
        sayi += 1;
    }
    sayi
}

fn main() {
    println!("{} {} {}", basamak(0), basamak(7), basamak(123456));
}

Beklenen çıktı

1 1 6

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 <code>while</code> ile <code>loop</code> arasındaki fark nedir?

  • Fark yoktur
  • loop daha yavaştır
  • while koşulu her tur başında denetler; loop koşulsuz döner Doğru cevap
  • while değer döndürür

Açıklama: break ile değer döndürme yalnızca loop'ta vardır; while her zaman () üretir.

2 Koşullu döngü

Soru
____ n > 1 {
    n /= 2;
    adim += 1;
}
Cevap
while n > 1 {
    n /= 2;
    adim += 1;
}

Açıklama: while koşul doğru olduğu sürece gövdeyi tekrarlar.

3 Döngü ve kullanım

Kavram Anlamı
loop Koşulsuz, break ile
while Koşul doğru oldukça
for Koleksiyon / aralık gezme
n /= 10 Son basamağı atar

Başlangıç bölümündeki tüm dersler

16 Proje: Yapılacaklar listesi

  1. Görev modeli
  2. Ekleme
  3. Listeleme
  4. İşaretleme
  5. Komut okuma