Ruby - Loops

I loop in Ruby vengono utilizzati per eseguire lo stesso blocco di codice un numero di volte specificato. Questo capitolo descrive in dettaglio tutte le istruzioni loop supportate da Ruby.

Ruby while Statement

Sintassi

while conditional [do]
   code
end

Esegue il codice mentre il condizionale è vero. Un po ' di ciclo condizionale è separato dal codice dalla parola riservata fare, un ritorno a capo, backslash \ o un punto e virgola;.

Esempio

#!/usr/bin/ruby

$i = 0
$num = 5

while $i < $num  do
   puts("Inside the loop i = #$i" )
   $i +=1
end

Questo produrrà il seguente risultato:

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

Rubino mentre modificatore

Sintassi

code while condition

OR

begin 
  code 
end while conditional

Esegue il codice mentre il condizionale è vero.

Se un modificatore while segue un'istruzione di inizio senza clausole di salvataggio o di sicurezza, il codice viene eseguito una volta prima della valutazione del condizionale.

Esempio

#!/usr/bin/ruby

$i = 0
$num = 5
begin
   puts("Inside the loop i = #$i" )
   $i +=1
end while $i < $num

Questo produrrà il seguente risultato:

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 fino a Statement

until conditional [do]
   code
end

Esegue il codice mentre condizionale è false. Un fino condizionale della dichiarazione è separato dal codice dalla parola riservata fare , un ritorno a capo, o un punto e virgola.

Esempio

#!/usr/bin/ruby

$i = 0
$num = 5

until $i > $num  do
   puts("Inside the loop i = #$i" )
   $i +=1;
end

Questo produrrà il seguente risultato:

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

Rubino fino al modificatore

Sintassi

code until conditional

OR

begin
   code
end until conditional

Esegue il codice mentre condizionale è false.

Se un modificatore until segue un'istruzione di inizio senza clausole di salvataggio o di sicurezza, il codice viene eseguito una volta prima della valutazione del condizionale .

Esempio

#!/usr/bin/ruby

$i = 0
$num = 5
begin
   puts("Inside the loop i = #$i" )
   $i +=1;
end until $i > $num

Questo produrrà il seguente risultato:

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

Sintassi

for variable [, variable ...] in expression [do]
   code
end

Esegue il codice una volta per ogni elemento in expression .

Esempio

#!/usr/bin/ruby

for i in 0..5
   puts "Value of local variable is #{i}"
end

Qui abbiamo definito l'intervallo 0..5. L'istruzione per i in 0..5 consentirà a i di assumere valori nell'intervallo da 0 a 5 (incluso 5). Questo produrrà il seguente risultato:

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

Un ciclo for ... in è quasi esattamente equivalente al seguente:

(expression).each do |variable[, variable...]| code end

tranne che un ciclo for non crea un nuovo ambito per le variabili locali. Una per loop espressione è separato dal codice dalla parola riservata fare, un ritorno a capo, o un punto e virgola.

Esempio

#!/usr/bin/ruby

(0..5).each do |i|
   puts "Value of local variable is #{i}"
end

Questo produrrà il seguente risultato:

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

Dichiarazione Ruby break

Sintassi

break

Termina il ciclo più interno. Termina un metodo con un blocco associato se chiamato all'interno del blocco (con il metodo che restituisce nil).

Esempio

#!/usr/bin/ruby

for i in 0..5
   if i > 2 then
      break
   end
   puts "Value of local variable is #{i}"
end

Questo produrrà il seguente risultato:

Value of local variable is 0
Value of local variable is 1
Value of local variable is 2

Dichiarazione successiva di Ruby

Sintassi

next

Salta all'iterazione successiva del ciclo più interno. Termina l'esecuzione di un blocco se chiamato all'interno di un blocco (con yield o call che restituisce zero).

Esempio

#!/usr/bin/ruby

for i in 0..5
   if i < 2 then
      next
   end
   puts "Value of local variable is #{i}"
end

Questo produrrà il seguente risultato:

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 Statement

Sintassi

redo

Riavvia questa iterazione del ciclo più interno, senza controllare le condizioni del ciclo. Riavvia il rendimento o la chiamata se chiamato all'interno di un blocco.

Esempio

#!/usr/bin/ruby

for i in 0..5
   if i < 2 then
      puts "Value of local variable is #{i}"
      redo
   end
end

Questo produrrà il seguente risultato e andrà in un ciclo infinito -

Value of local variable is 0
Value of local variable is 0
............................

Istruzione di ripetizione di Ruby

Sintassi

retry

Se riprova appare nella clausola di salvataggio dell'espressione iniziale, ricomincia dall'inizio del corpo iniziale.

begin
   do_something # exception raised
rescue
   # handles error
   retry  # restart from beginning
end

Se retry appare nell'iteratore, il blocco o il corpo dell'espressione for , riavvia il richiamo della chiamata dell'iteratore. Gli argomenti dell'iteratore vengono rivalutati.

for i in 1..5
   retry if some_condition # restart from i == 1
end

Esempio

#!/usr/bin/ruby
for i in 0..5
   retry if i > 2
puts "Value of local variable is #{i}"
end

Questo produrrà il seguente risultato e andrà in un ciclo infinito -

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