Darsliklar Ruby Shart operatori

Ruby Ruby Shart operatori

Shart operatori dastur bajarilish yo’nalishini shartga qarab tanlash imkonini beradi. Ruby’da bu if, elsif, else va unless kalit so’zlari orqali amalga oshiriladi, blok esa har doim end bilan yopiladi.

if / elsif / else / unlessshart rost (true) yoki yolg’on (false, nil) ekaniga qarab kod blokini tanlab bajaruvchi boshqaruv tuzilmasi.

Asosiy if…elsif…else

Bir nechta shartni ketma-ket tekshirish uchun elsif ishlatiladi (diqqat: else if emas, aynan elsif):

baho = 75

if baho >= 90
  puts "A'lo"
elsif baho >= 70
  puts "Yaxshi"
elsif baho >= 50
  puts "Qoniqarli"
else
  puts "Qoniqarsiz"
end
Yaxshi

Shartlar yuqoridan pastga tekshiriladi, birinchi rost topilgan shart bajariladi va qolganlari o’tkazib yuboriladi. else — hech biri to’g’ri kelmasa ishlaydigan yakuniy holat.

unless — teskari shart

unlessif not ma’nosini beradi, shart yolg’on bo’lgandagina blok bajariladi:

yosh = 15

unless yosh >= 18
  puts "Kirish taqiqlangan"
else
  puts "Kirish ruxsat etilgan"
end
Kirish taqiqlangan

unless yosh >= 18if !(yosh >= 18) bilan bir xil ma’noni bildiradi. unless faqat shartni “manfiy” shaklda tabiiyroq o’qish kerak bo’lgan holatlarda ishlatiladi; murakkab shartlarda esa if bilan ! dan foydalanish o’qilishi osonroq bo’ladi.

Modifikator shakli

Bitta amalni bajarish uchun bitta shart yetarli bo’lganda, if/unless ni qator oxiriga qo’yish mumkin — bu Ruby uslubining eng ixcham shakli:

narx = 150000
puts "Chegirma bor" if narx > 100000
puts "Yetkazib berish tekin" unless narx < 50000
Chegirma bor
Yetkazib berish tekin

Bu shakl to’liq bloklardan qisqaroq, lekin faqat bitta ifoda uchun mos — bir necha amal yoki elsif zanjiri kerak bo’lsa, to’liq if...end blokiga qaytish kerak.

Shartlarni birlashtirish

&& va || orqali bir nechta shartni bitta if ichida birlashtirish mumkin:

yosh = 26
hujjat_bor = true

if yosh >= 18 && hujjat_bor
  puts "Shartnoma tuzish mumkin"
end
Shartnoma tuzish mumkin

Bu operatorlar oldingi darsda batafsil ko’rilgan edi — shart ichida ular xuddi shu mantiq bilan ishlaydi: && ikkala tomon ham rost bo’lishini talab qiladi.