Rust shart operatorlari (If..Else)
Shartlar va If..Else
Siz allaqachon bilasizki, Rust matematikadan tanish bo‘lgan taqqoslash shartlarini qo‘llab-quvvatlaydi, masalan:
- Kichik: a < b
- Kichik yoki teng: a <= b
- Katta: a > b
- Katta yoki teng: a >= b
- Teng a == b
- Teng emas: a != b
Bu shartlardan turli qarorlar uchun turli amallarni bajarishda foydalanishingiz mumkin.
Rustda quyidagi shart operatorlari mavjud:
- Agar belgilangan shart
truebo‘lsa, bajarilishi kerak bo‘lgan kod blokini belgilash uchunifoperatoridan foydalaning - Agar o‘sha shart
falsebo‘lsa, bajarilishi kerak bo‘lgan kod blokini belgilash uchunelseoperatoridan foydalaning - Agar birinchi shart
falsebo‘lsa, tekshiriladigan yangi shartni belgilash uchunelse ifoperatoridan foydalaning - Bajarilishi mumkin bo‘lgan ko‘plab muqobil kod bloklarini belgilash uchun
matchoperatoridan foydalaning
Eslatma: Boshqa ko‘plab dasturlash tillaridan farqli o‘laroq, Rustda if..else operator (ko‘rsatma) sifatida ham, ifoda sifatida ham (o‘zgaruvchiga qiymat tayinlash uchun) ishlatilishi mumkin. Buni yaxshiroq tushunish uchun sahifa oxiridagi misolni ko‘ring.
if
Shart true bo‘lsa, bajarilishi kerak bo‘lgan kod blokini belgilash uchun if operatoridan foydalaning.
O‘zgaruvchilarni ham tekshirishingiz mumkin:
if...else
Agar shart rost bo‘lmasa, boshqa kodni bajarish uchun else blokidan foydalanishingiz mumkin:
Misol
let age = 16;
if age >= 18 {
println!("You can vote.");
} else {
println!("You are too young to vote.");
}
O‘zingiz sinab ko‘ring »
else if
else if yordamida bir nechta shartni tekshirishingiz mumkin:
Misol
let score = 85;
if score >= 90 {
println!("Grade: A");
} else if score >= 80 {
println!("Grade: B");
} else if score >= 70 {
println!("Grade: C");
} else {
println!("Grade: F");
}
O‘zingiz sinab ko‘ring »
if operatorini ifoda sifatida ishlatish
Rustda if...else ifoda sifatida ham ishlatilishi mumkin.
Bu if natijasini o‘zgaruvchiga tayinlash mumkinligini anglatadi:
Misol
let time = 20;
let greeting = if time < 18 {
"Good day."
} else {
"Good evening."
};
println!("{}", greeting);
O‘zingiz sinab ko‘ring »
if operatorini ifoda sifatida ishlatganda else qismini albatta qo‘shishingiz kerak. Bu natija doim qiymatga ega bo‘lishini ta’minlaydi.
Soddalashtirilgan sintaksis
Agar har bir blokda faqat bitta ifoda bo‘lsa, uni bir qatorda qisqaroq shaklda yozishingiz mumkin:
Misol
let time = 20;
let greeting = if time < 18 { "Good day." } else { "Good evening." };
println!("{}", greeting);
O‘zingiz sinab ko‘ring »
Maslahat: Bu Java yoki C kabi tillardagi ternar operatorga (condition
? value1 : value2) o‘xshash ishlaydi. Biroq Rustda ternar operator yo‘q, lekin if...else operatorini ifoda sifatida ishlatish xuddi shunday natija beradi.
Tiplarni aralashtirmang
Eslatma: if va else qaytaradigan qiymatlar bir xil tipda bo‘lishi kerak, masalan, ikkita matn yoki ikkita son (yuqoridagi misolda ikkalasi ham string).
Agar tiplarni aralashtirsangiz, masalan, string va butun sonni, xatoga duch kelasiz:
Misol
let number = 5;
let result = if number < 10 { "Too small" } else { 100 };
println!("{}", result);
Natija:
error[E0308]: `if` and `else` have incompatible types
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
