Döngü ve bitiş
- Rust kursu
- Başlangıç
- Ders 29/115
- 6 dk
loop, break ve quit komutuyla sürekli hesaplama yaparsın.
Döngü ve bitiş
Hesap makinesi kullanıcı çık yazana kadar çalışmalıdır. loop sonsuz döngüdür; break ile çıkılır. Her turda tampon clear ile temizlenir:
let mut girdi = String::new();
loop {
girdi.clear();
if io::stdin().read_line(&mut girdi).unwrap() == 0 {
break; // EOF (Ctrl+D)
}
let satir = girdi.trim();
if satir == "çık" {
break;
}
match isle(satir) { /* ... */ }
}loop bir ifadedir
break bir değer de döndürebilir; böylece loop bir ifade olarak kullanılır:
let mut n = 1;
let ilk_buyuk = loop {
n *= 3;
if n > 100 {
break n;
}
};
println!("{ilk_buyuk}"); // 243continue ise turun geri kalanını atlar; örneğin boş satırları atlamak için kullanılır.
Uygulama Komut döngüsü
Stdin yerine bir dizi kullanarak döngüyü dene: ["5 + 1", "", "çık", "9 * 9"] komutlarını sırayla işle; boş satırda continue, "çık"'ta break yap, diğerlerinde satırı işlendi: ... biçiminde yazdır. Sonda güle güle yazdır.
Başlangıç kodu
fn main() {
// buraya yaz
}Örnek çözüm
fn main() {
for komut in ["5 + 1", "", "çık", "9 * 9"] {
if komut.is_empty() {
continue;
}
if komut == "çık" {
break;
}
println!("işlendi: {komut}");
}
println!("güle güle");
}Beklenen çıktı
işlendi: 5 + 1 güle güle
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Döngüde <code>girdi.clear()</code> çağrılmazsa ne olur?
- Girdi okunmaz
- Yeni satır eskisinin sonuna eklenir ve ayrıştırma bozulur Doğru cevap
- Hiçbir şey
- Program çöker
Açıklama: read_line var olan String'e ekleme yapar; temizlenmezse "12 * 3\n5 + 1\n" gibi birikir.
2 Döngüden çık
if satir == "çık" {
____;
}
if satir == "çık" {
break;
}
Açıklama: break en yakın döngüyü bitirir.
3 Komut ve etkisi
| Kavram | Anlamı |
|---|---|
loop |
Sonsuz döngü |
break |
Döngüyü bitirir |
break n |
Değer döndürür |
continue |
Sonraki tura geçer |