irfo
Moderatör
- Katılım
- 7 Ocak 2026
- Mesajlar
- 290
- Tepkime puanı
- 2
- Puanları
- 18
Rust'ta kontrol akışı, programınızın belirli koşullara göre hangi yolu izleyeceğini belirler. Ancak Rust'ta
Rust
Rust
Rust
if ve özellikle match, diğer dillerden farklı olarak birer expression (deyim), yani değer üreten yapılardır.1. if ve else İfadeleri
Rust'taif koşulu her zaman bir boolean (true veya false) dönmelidir. Diğer bazı dillerin aksine, sayılar (0 veya 1) otomatik olarak boolean'a dönüşmez.Rust
Kod:
let sayi = 7;
if sayi < 5 {
println!("Sayı küçük");
} else if sayi == 7 {
println!("Sayı tam yedi!");
} else {
println!("Sayı büyük");
}
Değişken Atamasında if Kullanımı
if bir deyim olduğu için, sonucunu doğrudan bir değişkene atayabilirsiniz:Rust
Kod:
let durum = true;
let sayi = if durum { 5 } else { 6 }; // sayi 5 olur
Önemli:ifveelsebloklarının döndürdüğü veri tipleri aynı olmalıdır.
2. Güçlü match İfadesi
match, Rust'ın en güçlü özelliklerinden biridir. Diğer dillerdeki switch yapısına benzer ama çok daha yetenekli ve güvenlidir. Rust, match kullanırken tüm olasılıkları (exhaustive) değerlendirmenizi zorunlu kılar.Rust
Kod:
let plaka = 34;
match plaka {
1 => println!("Adana"),
6 => println!("Ankara"),
34 => println!("İstanbul"),
35 | 45 => println!("Ege Bölgesi"), // Birden fazla değer
10..=20 => println!("10 ile 20 arasında"), // Aralık (range)
_ => println!("Diğer iller"), // Geri kalan her şey (default case)
}
match Neden Bu Kadar Önemli?
- Zorunluluk (Exhaustiveness): Eğer bir olasılığı atlarsanız kod derlenmez. Bu, çalışma zamanı hatalarını (runtime errors) önler.
- Kalıp Eşleme (Pattern Matching): Sadece sayılarla değil, kompleks veri yapıları, enum'lar ve tuple'lar ile de çalışabilir.
3. Döngüler: loop, while ve for
Rust'ta üç çeşit döngü mekanizması vardır:loop: Koşulsuz döngü. Sizbreakdiyene kadar sonsuza dek döner. Bir değer döndürmek içinbreak deger;şeklinde kullanılabilir.while: Bir koşul doğru olduğu sürece döner.for: Bir koleksiyon (dizi, aralık vb.) üzerinde gezinmek için en güvenli ve en çok tercih edilen döngüdür.
Kod:
// for ile aralık üzerinde gezinme
for sayi in (1..4).rev() {
println!("{}!", sayi); // 3, 2, 1 basar
}
// Bir dizi üzerinde gezinme
let dizi = [10, 20, 30];
for eleman in dizi {
println!("Değer: {}", eleman);
}
Özet Karşılaştırma
| Yapı | Kullanım Amacı | Öne Çıkan Özellik |
| if / else | Basit mantıksal dallanma | Değer döndürebilir (expression). |
| match | Karmaşık kalıp eşleme | Tüm durumları kontrol etmeyi zorunlu kılar. |
| loop | Sonsuz döngü | Döngü içinden değer döndürebilir. |
| for | Koleksiyonları işleme | Hata payı en düşük, en güvenli döngü. |