Ruby - Boucles

Les boucles dans Ruby sont utilisées pour exécuter le même bloc de code un nombre spécifié de fois. Ce chapitre détaille toutes les instructions de boucle prises en charge par Ruby.

Ruby while Statement

Syntaxe

while conditional [do]
   code
end

Exécute le code tant que conditionnel est vrai. A tout de boucle de conditionnelle est séparée du Code par le mot réservé faire, un saut de ligne, barre oblique inverse \ ou un point - virgule;.

Exemple

#!/usr/bin/ruby

$i = 0
$num = 5

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

Cela produira le résultat suivant -

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 tout en modificateur

Syntaxe

code while condition

OR

begin 
  code 
end while conditional

Exécute le code tant que conditionnel est vrai.

Si un modificateur while suit une instruction begin sans clause de secours ou de garantie , le code est exécuté une fois avant l'évaluation de la condition.

Exemple

#!/usr/bin/ruby

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

Cela produira le résultat suivant -

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 jusqu'à la déclaration

until conditional [do]
   code
end

Exécute le code lorsque le conditionnel est faux. Un jusqu'à ce que la condition de déclaration est séparée du Code par le mot réservé faire , une nouvelle ligne ou un point - virgule.

Exemple

#!/usr/bin/ruby

$i = 0
$num = 5

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

Cela produira le résultat suivant -

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

Rubis jusqu'au modificateur

Syntaxe

code until conditional

OR

begin
   code
end until conditional

Exécute le code lorsque le conditionnel est faux.

Si un modificateur jusqu'à suit une instruction begin sans clause de secours ou de garantie , le code est exécuté une fois avant l' évaluation de la condition .

Exemple

#!/usr/bin/ruby

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

Cela produira le résultat suivant -

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 pour déclaration

Syntaxe

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

Exécute le code une fois pour chaque élément de l' expression .

Exemple

#!/usr/bin/ruby

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

Ici, nous avons défini la plage 0..5. L'instruction pour i dans 0..5 permettra à i de prendre des valeurs comprises entre 0 et 5 (y compris 5). Cela produira le résultat suivant -

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

Une boucle for ... in équivaut presque exactement à ce qui suit -

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

sauf qu'une boucle for ne crée pas de nouvelle portée pour les variables locales. Une expression de boucle for est séparée du code par le mot réservé do, une nouvelle ligne ou un point-virgule.

Exemple

#!/usr/bin/ruby

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

Cela produira le résultat suivant -

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

Déclaration de rupture de rubis

Syntaxe

break

Termine la boucle la plus interne. Termine une méthode avec un bloc associé si elle est appelée dans le bloc (avec la méthode retournant nil).

Exemple

#!/usr/bin/ruby

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

Cela produira le résultat suivant -

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

Déclaration suivante de Ruby

Syntaxe

next

Passe à l'itération suivante de la boucle la plus interne. Termine l'exécution d'un bloc s'il est appelé dans un bloc (avec yield ou call retournant nil).

Exemple

#!/usr/bin/ruby

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

Cela produira le résultat suivant -

Value of local variable is 2
Value of local variable is 3
Value of local variable is 4
Value of local variable is 5

Déclaration de Redo Ruby

Syntaxe

redo

Redémarre cette itération de la boucle la plus interne, sans vérifier la condition de la boucle. Redémarre le rendement ou l' appel s'il est appelé dans un bloc.

Exemple

#!/usr/bin/ruby

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

Cela produira le résultat suivant et ira dans une boucle infinie -

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

Instruction de réessai Ruby

Syntaxe

retry

Si une nouvelle tentative apparaît dans la clause de secours de l'expression de début, redémarrez depuis le début du corps de début.

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

Si retry apparaît dans l'itérateur, le bloc ou le corps de l' expression for , redémarre l'appel de l'itérateur. Les arguments de l'itérateur sont réévalués.

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

Exemple

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

Cela produira le résultat suivant et ira dans une boucle infinie -

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