while döngüsü
- Rust kursu
- Başlangıç
- Ders 39/115
- 4 dk
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}"); // 19Uygulama 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
fn main() {
// buraya yaz
}Örnek çözüm
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ü
____ n > 1 {
n /= 2;
adim += 1;
}
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 |