0

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.

Ruby’ de Veri Tipleri

Previous article

Ruby’de Değişken Türleri

Next article

You may also like

Comments

Bir Cevap Yazın

More in Anasayfa