lostyazilim
tr.link

Ruby’de Koşullu Dallanmalar(if, unless, ternary ve case)

6 Mesajlar 2.551 Okunma
acebozum
tr.link

Canahm3t Canahm3t Php Developer Kullanıcı
  • Üyelik 19.07.2011
  • Yaş/Cinsiyet 34 / E
  • Meslek Php Developer
  • Konum Eskişehir
  • Ad Soyad A** İ**
  • Mesajlar 169
  • Beğeniler 2 / 14
  • Ticaret 1, (%100)
Birçok programlama dilinde programın akışı koşullu dallanmalar kullanılarak değiştirilebilir. Elbette Ruby’de de bu mümkündür. Bu tür dallanma işlemlerinde birşeyin doğruluğu ya da yanlışlığına göre programın gidişatına yön verilir.

Programın akışını kontrol etmek için birden fazla yöntem mevcut. Bunlar yazının başlığında da geçtiği üzere if, unless, ternary ve case. Şimdi sırasıyla bunların nasıl kullanıldığına bakarak örneklerle nasıl çalıştıklarını görelim.

if işlemi ve kullanım örneği

sayi = 3

if sayi==3
print "sayi 3e esit" #bu satır çalışacaktır
end

if sayi==5
print "sayi 5e esit" #bu satır çalışmayacaktır
end


Peki if işlemini tek satırda yapmak istiyorsanız ne yapmalısınız. Ruby’de bunu yapabilmek isteyeceğinizi de düşünmüşler. Bunun için then komutunu kullanmanız yeterli.

sayi = 3
if sayi == 3 then print "3e esit" end


if, elsif ve else işlemleri

Bir şartın doğru olmasının yanında yanlış olması da bizi ilgilendiriyorsa bu durumda else komutunu da kullanırız. Bir şartla ilgili birden fazla karşılaştırma yapmak istiyorsak da elsif komutu işimize yarayacaktır.

Örnek else işlemi:

sayi = 4
if sayi==3
print "sayi 3"
else
print "sayi 3 degil"
end
#burada sayımız 3 olmadığı için elseden sonraki print komutu çalışacaktır


Örnek elsif işlemi:

gun = 4
if gun==1
print "Pazartesi"
elsif gun==2
print "Sali"
elsif gun==3
print "Carsamba"
elsif gun==4
print "Persembe"
elsif gun==5
print "Cuma"
elsif gun==6
print "Cumartesi"
else
print "Pazar"
end
#ekrana -Persembe- yazdıracaktır


Son örneğimizde elsif ve else işlemini aynı anda kullandık.

unless işlemi

Unless işlemini if işleminin tersi gibi düşünebilirsiniz. If işleminde eğer şart doğruysa belirlediğimiz kod bloğu çalışıyordu. Unless işleminde ise şart yanlışsa belirlediğimiz kod bloğu çalışacaktır.

sayi = 3
unless sayi == 4
print "sayi 4 degil" #ekrana yazdıracaktır
end


“Peki unless işlemini tek satırda kullanabili miyiz?” diye soranlarınız olacaktır. Elbette if işleminde olduğu gibi unless işleminde de işlemi tek satırda yapmanız mümkündür.

sayi = 3
sayi==4 unless print "sayi 4 degil"
#sayımız 3 olduğundan print komutu çalışacaktır


ternary(kısa if) işlemi

Her ne kadar if işlemini tek satırda kullanabiliyor olsak da bazen tek satırda hem karşılaştırmayı yaptırıp hemde ekrana yazdırmak isteyebiliriz. Bu gibi durumlarda kısa if denilen ya da doğru adıyla ternary operatöründen yararlanabiliriz. Ternary operatörü çoğu programlama dilinde mevcuttur. Daha detaylı açıklama için buradaki yazımı inceleyebilirsiniz. Aşağıdaki kodlarda ternary işleminin Ruby’deki kullanımına örnektir.

sayi = 3
print sayi==3?"Sayi3e esit":"Sayi 3e esit degil"
#burada -Sayi 3e esit yazacaktır
sayi = 4
print sayi==3?"Sayi 3e esit":"Sayi 3e esit degil"
#burada -Sayi 3e esit degil yazacaktır


case işlemi

Yukarıda haftanın günlerinde olduğu gibi bir şarta bağlı birden fazla işlem için elsif kullanmıştık. Case işlemi işte buna alternatif olarak kullanabileceğimiz oldukça kullanışlı bir işlemdir. Case işleminin birden fazla kullanım şekli bulunmaktadır. Aşağıda da bu kullanım şekillerine ait örnekler yer almaktadır.

case ile haftanın günleri örneği 1:

gun = 5
case
when gun==1 then print "Pazartesi"
when gun==2 then print "Sali"
when gun==3 then print "Carsamba"
when gun==4 then print "Persembe"
when gun==5 then print "Cuma"
when gun==6 then print "Cumartesi"
when gun==7 then print "Pazar"
end
#ekrana -Cuma- yazacaktir


case ile haftanın günleri örneği 2:

gun = 2
case gun
when 1 then print "Pazartesi"
when 2 then print "Sali"
when 3 then print "Carsamba"
when 4 then print "Persembe"
when 5 then print "Cuma"
when 6 then print "Cumartesi"
when 7 then print "Pazar"
end
#ekrana -Sali- yazacaktir


Case işleminde karşılaştırma yaparken aralık belirtme işlemi de yapabilmekteyiz. Aşağıdaki örnekte hem aralık belirtme hemde else komutunu case ile nasıl yapabileceğimizi daha rahat görebilirsiniz.

case aralık ve else örneği:
sayi = 27
case sayi
when 0..20 then print "0-20 araliginda"
when 21..40 then print "21-40 araliginda"
when 41..60 then print "41-60 araliginda"
when 61..80 then print "61-80 araliginda"
when 81..100 then print "81-1000 araliginda"
else print "belirtilen aralikta degil"
end
#ekrana -21-40 araliginda- yazacaktır


Kaynak: Ruby’de Koşullu Dallanmalar(if, unless, ternary ve case)
 

 

elektronikssl
webimgo

sametweb sametweb WM Aracı Kullanıcı
  • Üyelik 29.08.2011
  • Yaş/Cinsiyet 34 / E
  • Meslek software developer
  • Konum ABD
  • Ad Soyad S** M**
  • Mesajlar 615
  • Beğeniler 52 / 196
  • Ticaret 1, (%100)
Ruby bir web dili midir?
(eğer öyleyse)
Hangi sunucularda çalışır?
Dosya türü nedir?
Kullanan site var mıdır?

Ruby dilini daha önce duymuştum ama hakkında hiçbir şey bilmiyorum. Bu sorularımı cevaplayabilir misiniz?
 

 

React Dersleri YouTube Kanalı
https://www.youtube.com/c/reactdersleri

myenes myenes $php = new PHP(); Kullanıcı
  • Üyelik 28.09.2011
  • Yaş/Cinsiyet 38 / E
  • Meslek Back-end Developer
  • Konum İstanbul Avrupa
  • Ad Soyad E** G**
  • Mesajlar 1051
  • Beğeniler 253 / 258
  • Ticaret 5, (%100)

sametweb adlı üyeden alıntı

Ruby bir web dili midir?
(eğer öyleyse)
Hangi sunucularda çalışır?
Dosya türü nedir?
Kullanan site var mıdır?

Ruby dilini daha önce duymuştum ama hakkında hiçbir şey bilmiyorum. Bu sorularımı cevaplayabilir misiniz?


ruby bir programlama dilidir. Web için içinde framework bulunur adı ruby on rails'dir. Kullanan siteler vardır. Özellikle yurt dışında çok kullanılır. dakick.com ruby on rails alt yapısını kullanır. dosya türü .ry olması lazım ama emin değilim.

http://www.rubydersleri.net/rubye-giris-ruby-nedir/ okumanızı tavsiye ederim.
Canahm3t sametweb

kişi bu mesajı beğendi.

Canahm3t Canahm3t Php Developer Kullanıcı
  • Üyelik 19.07.2011
  • Yaş/Cinsiyet 34 / E
  • Meslek Php Developer
  • Konum Eskişehir
  • Ad Soyad A** İ**
  • Mesajlar 169
  • Beğeniler 2 / 14
  • Ticaret 1, (%100)
evet myenes gayet iyi açıklamış. normal ruby dosyalarının uzantısı .rb dir. web için ruby on rails dışında sinatra ve padrino gibi frameworkler de var. ruby platform bağımsız olsa da linux sunucularda daha verimli çalışmaktadır. myenes'in dediği gibi http://www.rubydersleri.net/rubye-giris-ruby-nedir/ okumanızı tavsiye ederim.
 

 

wmaraci
wmaraci

sametweb sametweb WM Aracı Kullanıcı
  • Üyelik 29.08.2011
  • Yaş/Cinsiyet 34 / E
  • Meslek software developer
  • Konum ABD
  • Ad Soyad S** M**
  • Mesajlar 615
  • Beğeniler 52 / 196
  • Ticaret 1, (%100)
Orayi okudugum ve anlamadigim icin sormustum :) verdiginiz link ruby hakkinda hicbirsey bilmeyen brisi icin biraz teknik kalmis. Daha acikca ozetleseniz iyi olur aslinda diye dusunuyorum.
 

 

React Dersleri YouTube Kanalı
https://www.youtube.com/c/reactdersleri

Canahm3t Canahm3t Php Developer Kullanıcı
  • Üyelik 19.07.2011
  • Yaş/Cinsiyet 34 / E
  • Meslek Php Developer
  • Konum Eskişehir
  • Ad Soyad A** İ**
  • Mesajlar 169
  • Beğeniler 2 / 14
  • Ticaret 1, (%100)

sametweb adlı üyeden alıntı

Orayi okudugum ve anlamadigim icin sormustum :) verdiginiz link ruby hakkinda hicbirsey bilmeyen brisi icin biraz teknik kalmis. Daha acikca ozetleseniz iyi olur aslinda diye dusunuyorum.

temel programlama bilgisine sahip birinin anlayabileceği seviyede yazmaya çalışmıştım ama müsait bir zamanda elden geçirebilirim. görüşünüzü belirttiğiniz için teşekkür ederim.
 

 

wmaraci
wmaraci
Konuyu toplam 2 kişi okuyor. (0 kullanıcı ve 2 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al