Ruby - Döngüler
Ruby'deki döngüler, aynı kod bloğunu belirli sayıda çalıştırmak için kullanılır. Bu bölüm, Ruby tarafından desteklenen tüm döngü ifadelerinin ayrıntılarını içerir.
Ruby while İfadesi
Sözdizimi
while conditional [do]
code
end
Çalıştırır kodu ise koşullu doğrudur. Bir while döngüsünün koşulu , koddan ayrılmış sözcük do, satırsonu, ters eğik çizgi \ veya noktalı virgül; ile ayrılır.
Misal
#!/usr/bin/ruby
$i = 0
$num = 5
while $i < $num do
puts("Inside the loop i = #$i" )
$i +=1
end
Bu, aşağıdaki sonucu verecektir -
Inside the loop i = 0
Inside the loop i = 1
Inside the loop i = 2
Inside the loop i = 3
Inside the loop i = 4
Ruby değiştirici iken
Sözdizimi
code while condition
OR
begin
code
end while conditional
Çalıştırır kodu ise koşullu doğrudur.
Bir while değiştiricisi , kurtarma veya sağlama cümleleri içermeyen bir begin ifadesini takip ederse , koşul değerlendirilmeden önce kod bir kez çalıştırılır.
Misal
#!/usr/bin/ruby
$i = 0
$num = 5
begin
puts("Inside the loop i = #$i" )
$i +=1
end while $i < $num
Bu, aşağıdaki sonucu verecektir -
Inside the loop i = 0
Inside the loop i = 1
Inside the loop i = 2
Inside the loop i = 3
Inside the loop i = 4
Ruby İfadeye Kadar
until conditional [do]
code
end
Çalıştırır kod ise koşullu yanlıştır. Bir until ifadesinin koşulu, koddan ayrılmış sözcük do , yeni satır veya noktalı virgül ile ayrılır.
Misal
#!/usr/bin/ruby
$i = 0
$num = 5
until $i > $num do
puts("Inside the loop i = #$i" )
$i +=1;
end
Bu, aşağıdaki sonucu verecektir -
Inside the loop i = 0
Inside the loop i = 1
Inside the loop i = 2
Inside the loop i = 3
Inside the loop i = 4
Inside the loop i = 5
Değiştiriciye kadar Ruby
Sözdizimi
code until conditional
OR
begin
code
end until conditional
Çalıştırır kod ise koşullu yanlıştır.
Bir until değiştirici , kurtarma veya garantiye alma cümleleri içermeyen bir begin ifadesini takip ederse , koşul değerlendirilmeden önce kod bir kez çalıştırılır .
Misal
#!/usr/bin/ruby
$i = 0
$num = 5
begin
puts("Inside the loop i = #$i" )
$i +=1;
end until $i > $num
Bu, aşağıdaki sonucu verecektir -
Inside the loop i = 0
Inside the loop i = 1
Inside the loop i = 2
Inside the loop i = 3
Inside the loop i = 4
Inside the loop i = 5
Ruby for Statement
Sözdizimi
for variable [, variable ...] in expression [do]
code
end
Çalıştırır kodu her bir eleman için bir kere ifadesi .
Misal
#!/usr/bin/ruby
for i in 0..5
puts "Value of local variable is #{i}"
end
Burada 0..5 aralığını tanımladık. İçin deyim i 0..5 yılında sağlayacak ı (5 dahil), 0 ile 5 arasında değerler almaya. Bu, aşağıdaki sonucu verecektir -
Value of local variable is 0
Value of local variable is 1
Value of local variable is 2
Value of local variable is 3
Value of local variable is 4
Value of local variable is 5
Bir for ... in döngüsü neredeyse tam olarak aşağıdakine eşdeğerdir -
(expression).each do |variable[, variable...]| code end
bir for döngüsünün yerel değişkenler için yeni bir kapsam oluşturmaması dışında . Bir için döngüsünün sentezleme ayrılır kod kelimesiyle yapmak, bir satır ya da bir noktalı virgül ile.
Misal
#!/usr/bin/ruby
(0..5).each do |i|
puts "Value of local variable is #{i}"
end
Bu, aşağıdaki sonucu verecektir -
Value of local variable is 0
Value of local variable is 1
Value of local variable is 2
Value of local variable is 3
Value of local variable is 4
Value of local variable is 5
Ruby break İfadesi
Sözdizimi
break
En dahili döngüyü sonlandırır. Blok içinde çağrılırsa ilişkili bir blokla bir yöntemi sonlandırır (yöntem sıfır döndürür).
Misal
#!/usr/bin/ruby
for i in 0..5
if i > 2 then
break
end
puts "Value of local variable is #{i}"
end
Bu, aşağıdaki sonucu verecektir -
Value of local variable is 0
Value of local variable is 1
Value of local variable is 2
Ruby next İfadesi
Sözdizimi
next
En dahili döngünün bir sonraki yinelemesine atlar. Bir blok içinde çağrılırsa bir bloğun yürütülmesini sonlandırır ( getiri veya sıfır dönen çağrı ile ).
Misal
#!/usr/bin/ruby
for i in 0..5
if i < 2 then
next
end
puts "Value of local variable is #{i}"
end
Bu, aşağıdaki sonucu verecektir -
Value of local variable is 2
Value of local variable is 3
Value of local variable is 4
Value of local variable is 5
Ruby redo İfadesi
Sözdizimi
redo
En dahili döngünün bu yinelemesini, döngü koşulunu kontrol etmeden yeniden başlatır. Bir blok içinde çağrılırsa verimi veya çağrıyı yeniden başlatır .
Misal
#!/usr/bin/ruby
for i in 0..5
if i < 2 then
puts "Value of local variable is #{i}"
redo
end
end
Bu, aşağıdaki sonucu üretecek ve sonsuz bir döngüye girecek -
Value of local variable is 0
Value of local variable is 0
............................
Ruby yeniden deneme İfadesi
Sözdizimi
retry
Eğer yeniden deneme başlangıcından itibaren ifadesini, yeniden başlamak kurtarma maddesi görünen bedeni başlar.
begin
do_something # exception raised
rescue
# handles error
retry # restart from beginning
end
For ifadesinin yineleyicide, bloğunda veya gövdesinde yeniden deneme görünürse , yineleyici çağrısının çağrılmasını yeniden başlatır. Yineleyiciye yönelik bağımsız değişkenler yeniden değerlendirilir.
for i in 1..5
retry if some_condition # restart from i == 1
end
Misal
#!/usr/bin/ruby
for i in 0..5
retry if i > 2
puts "Value of local variable is #{i}"
end
Bu, aşağıdaki sonucu üretecek ve sonsuz bir döngüye girecek -
Value of local variable is 1
Value of local variable is 2
Value of local variable is 1
Value of local variable is 2
Value of local variable is 1
Value of local variable is 2
............................