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
............................