CodeBlanks Logo Icon CodeBlanks

if-else

if, else if ve else ile koşullu dallanmayı öğrenirsin.

if-else

if koşulu parantez gerektirmez ama mutlaka bool olmalıdır; Rust sayıları kendiliğinden doğru/yanlışa çevirmez:

let sicaklik = 24;
if sicaklik > 30 {
    println!("sıcak");
} else if sicaklik > 15 {
    println!("ılık");
} else {
    println!("soğuk");
}

if n { ... } (n bir sayı) derleme hatasıdır; if n != 0 yazılır.

İfade olarak if

Değeri seçip doğrudan bağlamak için if ifadesi kullanılır:

let yas = 16;
let bilet = if yas < 18 { 25 } else { 40 };
println!("{bilet} TL");

Karmaşık koşullar &&, || ve ! ile birleştirilir; kısa devre sayesinde v.len() > 0 && v[0] == 1 boş vektörde panic üretmez.

Uygulama Bilet fiyatı

fn bilet(yas: u32) -> u32 yaz: 6 yaş altı 0, 18 yaş altı 25, diğerleri 40 döndürsün (if/else if/else ifadesiyle). bilet(4), bilet(12), bilet(30) sonuçlarını tek satırda yazdır.

Başlangıç kodu

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

Örnek çözüm

main.rs
fn bilet(yas: u32) -> u32 {
    if yas < 6 {
        0
    } else if yas < 18 {
        25
    } else {
        40
    }
}

fn main() {
    println!("{} {} {}", bilet(4), bilet(12), bilet(30));
}

Beklenen çıktı

0 25 40

Soru ve cevaplar

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

1 <code>let x = if true { 1 } else { "bir" };</code> neden derlenmez?

  • Derlenir
  • Kolların türleri farklı (i32 ve &str) Doğru cevap
  • true sabit olamaz
  • else gereksiz

Açıklama: if bir ifade olduğu için tek bir türü olmalıdır; her kol aynı türü üretmelidir.

2 Ara koşul

Soru
if n > 0 {
    println!("pozitif");
} ____ n < 0 {
    println!("negatif");
}
Cevap
if n > 0 {
    println!("pozitif");
} else if n < 0 {
    println!("negatif");
}

Açıklama: Ek koşul else if ile yazılır.

3 Sıcaklık ve çıktı

Kavram Anlamı
35 sıcak
24 ılık
5 soğuk
if n {} Derleme hatası

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