if-else
Gündelik hayatımızda yaptığımız işlerden tutun yürüdüğümüz yola kadar birden fazla seçenek mevcut olabilir. Gündelik yaşantımızda durum böyleyken yazdığımız kodda neden olmasın?
Diyelim ki yaşımızı sorgulayan ve bunu sonucunda bize buna göre cevap veren bir sistemimiz olsun:
Verilen örnekte de görüldüğü gibi yaşımızın 18’ e eşit ve 18 den büyük olduğu durumlar geçerli olmaktadır. Bunun için 18’ den küçük yaşları da dahil etmek için if-else yapısı kullanmamız gerekmektedir.
print “Yasinizi Girin: ” yas = gets.chomp.to_i if yas >= 18 puts “Yetiskinsiniz.” end
Verilen örnekte de görüldüğü gibi yaşımızın 18’ e eşit ve 18 den büyük olduğu durumlar geçerli olmaktadır. Bunun için 18’ den küçük yaşları da dahil etmek için if-else yapısı kullanmamız gerekmektedir.
print “Yasinizi Girin: ” yas = gets.chomp.to_i if yas >= 18 puts “Yetiskinsiniz.” else puts “Çocuksunuz.” end
Bu seferde iki durumumuz var peki ya iki den fazla durum mevcutsa o zaman ne yapacağız?
print “Yasinizi Girin: ” yas = gets.chomp.to_i if yas > 18 puts “Yetiskinsiniz.” else if yas == 18 puts “Yeni reşit oldunuz” else puts “Çocuksunuz.” end
if-else bloğu için ifade ‘true’ ise if döngüsü ‘false’ ise diğer durumlar geçerli olur.
unless-else
Diyelim ki ‘if’ deyiminde ki ifadenin yanlış olmasını istiyoruz. ‘!’ veya ‘not’ ifadesi yerine Ruby dilinin bize sunmuş olduğu bir kolaylık var. ‘unless-else’ yapısı ‘if-else’ yapısının tersi gibi düşünebiliriz.
print “Bir a sayisi girin: ” sayi1 = gets.chomp.to_i print “Bir b sayisi girin: ” sayi2 = gets.chomp.to_i unless a == b puts “a sayisi b sayisina eşit değil” else puts “a sayisi b sayisina eşit.” end
BİLGİ
if-else yapısını tek satıra indirgeyerek ‘ternary (üçlü) operatör (Ruby’de Operatörler yazımın bilgi kutusu kısmında değinmiştim)‘ yapısı ile yazabiliriz.
case – when
Peki elimizde kontrol edilmesi çok sayıda koşulumuz varsa ard arda else if yapısı kullanmak yerine Ruby’nin bize sunmuş olduğu ‘case-when’ yapısını kullanmak daha uygun olur.
print "Sayi Girin: " gun = gets.chomp.to_i case(gun) when 1 puts "Pazartesi" when 2 puts "Sali" when 3 puts "Carsamba" when 4 puts "Persembe" when 5 puts "Cuma" when 6 puts "Cumartesi" when 7 puts "Pazar" else puts "Boyle bir gun yok" end
İPUCU
Ruby’de case-when yapısı çok güçlü bir yapıdır. Karşılaştırma yaparken ‘when’ satırındaki karşılaştırma ‘===’ metodu ile yapılıyor olması güçlü olmasının sebeplerindendir.
while – until
Şimdi de ‘while-until’ yapısından bahsedelim. Tıpkı ‘if-else’ ve ‘unless-else’ yapılarının aralarında olan zıtlık while-until yapısında da vardır.
while’ döngüsünde koşul doğru olana kadar döngü dönmeye devam eder, verilen koşul belli aralıklar ile arttırılır.
print "Sayac degeri giriniz: " sayac = gets.chomp.to_i while sayac < 10 print "#{sayac} " sayac = sayac + 2 #sayacın değerini ikişer ikişer arttırdık end
Eğer koşul değeri arttırılmazsa döngü sonsuz döngüye girer.
‘until ‘ döngüsü, ‘while’ döngüsüyle yazım tarzı olarak birebir aynıdır. Fakat tam tersi şekilde çalışır.
for
for’ döngüsü genellikle her programlama dilinde kullanılır. Fakat Ruby dilinde pek tercih edilmez.
for i in 1..10 print "#{i} " end
BİLGİ
‘break’ anahtar kelimesi bulunduğu döngüyü sonlandırmak için kullanılır.
i = 0 while i < 10 print "#{i} " if i == 5 break end i += 1 end
Bu Yazı SiberGazi den onay alınalarak alınmıştır.
Comments