Ruby ile baÅŸlangıç – Döngüler

Ruby ile Veri Tabanı serisi ve Ruby ile Resim İşlemleri yazılarının üzerine hiç yakışmıyor ama, yeni başlayanlar ve/veya Ruby ile çalışanlar için bazı ipuçlarıda barındıracak bir yazı yazmam istendi :) emir büyük yerden geldi öyle bakmayın :)

Bu yazıdaki çerez konumuz ruby’de döngüler;
Standart bir döngü..

# 0'dan 14'e döngü
15.times { |index|
	p index
}

Biraz daha kompleks döngüler..

a = 15
b = 35

# 15'den 35'e farkli bir döngü
a.upto(b) { |index|
	p index
}
# 35'den 15'e döngü
b.downto(a) { |index|
	p index
}
# 15'den 35'e 2 ser
a.step(b, 2) { |index|
	p index
}

Dizi tanımlaması ve dizi tabanlı döngüler, bu konu biraz önemli.. Ruby’nin bu konuda söyleyeceÄŸi çok ÅŸey var.

# 15'den 35'e döngüdür fakat bu numeric bir islem degildir.
# (a..b) islemi bir dizi yaratir ve bu dizi elemanlari uzerinde bir gezinti yapilir.
(a..b).each { |index|
	p index
}
# [], küme parantezleri ile dizi tanımı.
["Tankut", "Senturk","esiyo.net","essiyoo.net","essiyoo.com"].each { |index|
	p index
}
# %w anahtar kelimesi ile dizi tanımı
%w[Tankut Senturk esiyo.net essiyoo.net essiyoo.com].each { |index|
	p index
}
# Karakter aralığı vererek dizi tanımlama
('a'..'z').each { |index|
	p index
}

Görüldüğü gibi ruby’de birçok yöntem var, bunların hepside çok kolay ve uygulaması mantıklı yöntemler, ezberlemenize gerek yok, mantığını anlayın yeterli.

Koşullu düngülere geçecek olursak;

# While'ın yanında yer alan koşul doğru olduğu sürece işlem yapılır.
# Herhangi bir kod bloğunun başında veya sonunda olabilir.
i = 0
while i < 10
	i += 1
	p i
end

i = 0
begin
	i += 1
	p i
end while i < 10

# Until'ın yanında yer alan koşul doğru olmadığı sürece işlem yapılır.
# Herhangi bir kod bloğunun başında veya sonunda olabilir.
i = 0
until i >= 10
	i += 1
	p i
end

i = 0
begin
	i += 1
	p i
end until i >= 10

Kolay gelsin :)

Ruby ile baÅŸlangıç – Döngüler” üzerine 2 yorum

  1. Büyük yer ne olaki acaba?… :P
    Teşekkür ederiz efenim bizim gibi yazılıma yeni başlayanlara da yol gösterdiğiniz için.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir