Ruby Boucles

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

Ruby whileInstruction

Syntaxe

while conditional [do] code end

ou

Syntaxe

while conditional [:] code end

LorsqueconditionalLorsque vrai, exécutercode。

Dans la syntaxe, do ou : peuvent être omis. Mais si vous voulez écrire une expression while sur une ligne, vous devez utiliser do ou : pour séparer la condition du bloc de code.

Exemple

#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 while $i < $num do puts("#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 while $i < $num do puts("Dans l'instruction de boucle i = #$i" ) $i +=1 end" ) $i +=1 end

Essayez-le »

La sortie de l'exemple ci-dessus est :

在循环语句中 i = 0
在循环语句中 i = 1
在循环语句中 i = 2
在循环语句中 i = 3
在循环语句中 i = 4

Ruby whileModificateur

Syntaxe

code while conditionoubegin code end while conditionnel

LorsqueconditionalLorsque vrai, exécutercode。

SiwhileUn modificateur suit un ... sansrescueou une clause ensurebeginaprès une instruction,codeseraconditionnellementexécuté une fois avant que la condition soit évaluée.

Exemple

#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 begin puts("#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 begin puts("Dans l'instruction de boucle i = #$i" ) $i +=1 end while $i < $num" ) $i +=1 end while $i < $num

Essayez-le »

La sortie de l'exemple ci-dessus est :

在循环语句中 i = 0
在循环语句中 i = 1
在循环语句中 i = 2
在循环语句中 i = 3
在循环语句中 i = 4

Ruby untilInstruction

Syntaxe

until conditionnel [do] code end

QuandconditionnelQuand faux, exécutercode。

Dans la syntaxe, do peut être omis. Mais si vous voulez écrire une expression until sur une seule ligne, vous devez utiliser do pour séparer la condition du bloc de code.

Exemple

#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 until $i > $num do puts("#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 until $i > $num do puts("In the loop statement i = #$i" ) $i +=1; end" ) $i +=1; end

Essayez-le »

La sortie de l'exemple ci-dessus est :

在循环语句中 i = 0
在循环语句中 i = 1
在循环语句中 i = 2
在循环语句中 i = 3
在循环语句中 i = 4
在循环语句中 i = 5

Ruby untilModificateur

Syntaxe

code until conditionneloubegin code end until conditionnel

QuandconditionnelQuand faux, exécutercode。

SiuntilUn modificateur suit un ... sansrescueou une clause ensurebeginaprès une instruction,codeseraconditionnellementexécuté une fois avant que la condition soit évaluée.

Exemple

#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 begin puts("#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 begin puts("In the loop statement i = #$i" ) $i +=1; end until $i > $num" ) $i +=1; end until $i > $num

Essayez-le »

La sortie de l'exemple ci-dessus est :

在循环语句中 i = 0
在循环语句中 i = 1
在循环语句中 i = 2
在循环语句中 i = 3
在循环语句中 i = 4
在循环语句中 i = 5

Ruby forInstruction

Syntaxe

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

D'abord, évaluez l'expression pour obtenir un objet, puis pourexpressionchaque élément qu'il contient, exécutez une foiscode。

Exemple

#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0..5 puts "#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0..5 puts "The value of the local variable is #{i}" end" end

Essayez-le »

Ici, nous avons défini la plage 0..5. L'instruction for i in 0..5 permet à la valeur de i de varier de 0 à 5 (5 inclus).

La sortie de l'exemple ci-dessus est :

局部变量的值为 0
局部变量的值为 1
局部变量的值为 2
局部变量的值为 3
局部变量的值为 4
局部变量的值为 5

for...inLa boucle est presque exactement équivalente à :

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

Cependant, la boucle for ne crée pas de nouvelle portée pour les variables locales.

Dans la syntaxe, do peut être omis. Mais si vous voulez écrire une expression for sur une seule ligne, vous devez utiliser do pour séparer la condition du bloc de code.

Exemple

#!/usr/bin/ruby # -*- coding: UTF-8 -*- (0..5).each do |i| puts "#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0..5 do puts "The value of the local variable is #{i}" end" end

Essayez-le »

La sortie de l'exemple ci-dessus est :

局部变量的值为 0
局部变量的值为 1
局部变量的值为 2
局部变量的值为 3
局部变量的值为 4
局部变量的值为 5

Ruby breakInstruction

Syntaxe

break

Met fin à la boucle la plus interne. Si elle est appelée dans un bloc, elle met fin à la méthode associée au bloc (la méthode renvoie nil).

Exemple

#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0..5 if i > 2 then break end puts "#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0..5 if i > 2 then break end puts "The value of the local variable is #{i}" end" end

Essayez-le »

La sortie de l'exemple ci-dessus est :

局部变量的值为 0
局部变量的值为 1
局部变量的值为 2

Ruby nextInstruction

Syntaxe

next

Passe à l'itération suivante de la boucle. Si elle est appelée dans un bloc, elle met fin à l'exécution du bloc (yieldl'expression renvoie nil).

Exemple

#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0..5 if i < 2 then next end puts "#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0..5 if i < 2 then next end puts "The value of the local variable is #{i}" end" end

Essayez-le »

La sortie de l'exemple ci-dessus est :

局部变量的值为 2
局部变量的值为 3
局部变量的值为 4
局部变量的值为 5

Ruby redoInstruction

Syntaxe

redo

Redémarre l'itération courante de la boucle la plus interne, sans vérifier la condition de la boucle. Si elle est appelée dans un bloc, elle redémarreyieldoucall。

Exemple

#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0..5 if i < 2 then puts "#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0..5 if i < 2 then puts "The value of the local variable is #{i}" redo end end" redo end end

Cela produira le résultat suivant et entrera dans une boucle infinie :

局部变量的值为 0
局部变量的值为 0
............................

Ruby retryInstruction

Remarque : les versions 1.9 et ultérieures ne prennent pas en charge l'utilisation de retry dans les boucles.

Syntaxe

retry

Siretryapparaît dans la clause rescue d'une expression begin, alors il redémarre depuis le début du corps de begin.

begin do_something #l'exception levée rescue #gérer les erreurs retry #redémarrer depuis le début de begin end

Si retry apparaît à l'intérieur d'une itération, d'un bloc ou du corps d'une expression for, il redémarre l'appel de l'itération. Les arguments de l'itération sont réévalués.

for i in 1..5 retry if some_condition #redémarrer à partir de i == 1 end

Exemple

#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 1..5 retry if i > 2 puts "#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0..5 retry if i > 2 puts "La valeur de la variable locale est #{i}" end" end

Cela produira le résultat suivant et entrera dans une boucle infinie :

局部变量的值为 1
局部变量的值为 2
局部变量的值为 1
局部变量的值为 2
局部变量的值为 1
局部变量的值为 2
............................
Autres extensions