Kontrol Akışı: if, else ve Güçlü match İfadesi

  • Konbuyu başlatan Konbuyu başlatan irfo
  • Başlangıç tarihi Başlangıç tarihi

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 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'ta if 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: if ve else blokları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ü. Siz break diyene kadar sonsuza dek döner. Bir değer döndürmek için break 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.
Rust
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 / elseBasit mantıksal dallanmaDeğer döndürebilir (expression).
matchKarmaşık kalıp eşlemeTüm durumları kontrol etmeyi zorunlu kılar.
loopSonsuz döngüDöngü içinden değer döndürebilir.
forKoleksiyonları işlemeHata payı en düşük, en güvenli döngü.
 
Geri
Üst