Valid XHTML 1.0! Valid CSS!

Koşullar

if durumu hangi koşulun sağlandığına bağlı olarak farklı eylemleri yapmanıza olanak tanır. Örneğin:


drinking_age = 19
else
drinking_age = 21
end

Bu şunu söyler:

  1. if  city eşitse (==) "Toronto"drinking_age'i 19 olarak belirle.
  2. Diğer durumda (else), drinking_age'i 21 olarak belirle.

true ve false

Ruby true ve false için bir görüşe sahiptir. Bu en iyi şekilde örnekler ile açıklanabilir. irb'yi başlatıp şunları yazınız:

 if deyimi   ifadenin ( örneğin 'city == "Toronto"true ya da  false olmasına göre farklı değerler alır.

Uyarı:  '=' ve '==' arasındaki farka dikkat edin.
'=' atama operatörüdür.
'==' karşılaştırma operatörüdür.

En Bilinen Koşullar

Burada bazı en bilindik koşulların bir listesi var:

== eşit
!= eşit değil
> büyük
< küçük
>= büyük veya eşit
<= küçük veya eşit

Dizge Karşılaştırmaları

Bu operatörler dizgeler ile nasıl kullanılır? 

ASCIIbetical sıralama nedir? ASCII karakter tablosu klavyedeki tüm karakterleri içerir. Bu karakterleri şu sıra ile listeler:

...012...789...ABC...XYZ...abc...xyz...

irb'yi çalıştırın ve şunları yazın:

Not:irb'nin çalışmaları nasıl kolaylaştırdığına dikkat edin. Sizde bu gibi noktaları ilk defa irb üzerinde demenelisiniz. irb kullanımınızı bekleyen harika bir araçtır.

elsif

elsif birden fazla koşulu kontrol etmenize olanak tanır. Şu örneği inceleyin:

if age >= 60
puts "Senior fare"
elsif age >= 14
puts "Adult fare"
elsif age > 2
puts "Child fare"
else
puts "Free"
end

Örneği gözden geçirelim:

  1. Eğer age 60 ya da daha üzeri ise , yaşlılık ödeneği verilir.
  2. Eğer doğru değilse, fakat age 14 ya da daha üzeri ise, genç ödeneği verilir.
  3. Eğer doğru değilse, fakat age 2'den fazla ise, çocuk ödeneği verilir.
  4. Diğer durumlarda ödenek verilmez

Ruby bu koşullar kısmını birer birer göszden geçirir. İstediğiniz sayıda elsif deyimi kullanabilirsiniz.

Örnek - fare_finder.rb

Bazı noktaları daha açık hale getirmek için bu programı inceleyelim. Program yaşınızı soruyor ve cevabınızla ilintili olarak size bir ödenek tipi veriyor.

Bunu yazın ve programı çalıştırın. Aşağıdaki gibi bir ekranla karşılaşmanız gerekir:

Uyarı: elsif deyimini kullandığınız sıra için dikkatli olun. Sadece doğru olan ilk koşul çalıştırılacaktır. Bu örnek tehlikeyi örnekler:
age = 21

if age > 5
puts "Older than 5"
elsif age > 10
puts "Older than 10"
elsif age > 20
puts "Older than 20"
elsif age > 30
puts "Older than 30"
end

Bu programın çıktısı şudur:

$ ./example.rb
Older than 5
$

Burada  age hem 10'dan hem de 20'den büyüktür. Sadece doğru olan ilk koşul çalıştırılmıştır.

Bu programın doğru şekilde yazılmışı şöyledir:

if age > 30
puts "Older than 30"
elsif age > 20
puts "Older than 20"
elsif age > 10
puts "Older than 10"
elsif age > 5
puts "Older than 5"
end

Alıştırmalar

  1. Bu karakterleri ASCIIbetical sırada tekrardan düzenleyin:

     2, u, A, 4, w, f, R, y
  2. The ASCII tablosu klavyedeki tüm karakterleri içerir.irb kullanarak aşağıdaki tabloya uyan karakterleri bulunuz.

    1. 0'dan önce.
    2. 9'dan sonra fakat A'dan önce.
    3. Z'den sonra fakat a'dan önce.
    4. z'den sonra

  3. Bir önceki sorudaki deneyiminizi kullanarak, karakter girdisi yapan ve aşağıdaki tablo içerisinde olup olmadığını söyleyen bir program yazın:

    1. 0'dan önce.
    2. 9'dan sonra fakat A'dan önce.
    3. Z'den sonra fakat a'dan önce.
    4. z'den sonra.

    Prgoramı şu karkaterler için test edin:

        $, +, ?, <, -, ~, :, %, ^, {, [