if-else
- Rust kursu
- Başlangıç
- Ders 36/115
- 4 dk
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
fn main() {
// buraya yaz
}Örnek çözüm
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
if n > 0 {
println!("pozitif");
} ____ n < 0 {
println!("negatif");
}
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ı |