Boucle rubis
Les boucles en Ruby sont utilisées pour exécuter plusieurs fois le même bloc de code. Ce chapitre fournira une introduction détaillée à toutes les instructions de boucle prises en charge par Ruby.
Instruction Ruby while
syntaxe
while conditional [do] code end
ou
<pre> while conditional [:] code end
exécutée lorsque conditionnel est vrai code.
Dans la syntaxe, do ou : peuvent être omis. Mais si vous souhaitez écrire l'expression while sur une seule ligne, vous devez séparer l'expression conditionnelle ou le bloc de programme par do ou :.
Instance
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 while $i < $num do puts("在循环语句中 i = #$i" ) $i +=1 end
Le résultat de sortie de l'exemple ci-dessus est :
在循环语句中 i = 0 在循环语句中 i = 1 在循环语句中 i = 2 在循环语句中 i = 3 在循环语句中 i = 4
Ruby whileModificateur
Syntaxe
code while condition 或者 begin code end while conditional
Lorsque conditionnel est vrai, exécutez le code.
Si le modificateur while suit une instruction begin sans rescue ou clause Ensure, le code sera exécuté une fois avant Le conditionnel est jugé.
Instance
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 begin puts("在循环语句中 i = #$i" ) $i +=1 end while $i < $num
Le résultat de sortie de l'exemple ci-dessus est :
在循环语句中 i = 0 在循环语句中 i = 1 在循环语句中 i = 2 在循环语句中 i = 3 在循环语句中 i = 4
Ruby jusqu'à Déclaration
until conditional [do] code end
Lorsque conditionnel est faux, exécutez le code.
Dans la syntaxe, do peut être omis. Mais si vous souhaitez écrire la formule jusqu'à sur une seule ligne, vous devez séparer l'expression conditionnelle ou le bloc de programme par do.
Instance
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 until $i > $num do puts("在循环语句中 i = #$i" ) $i +=1; end
Le résultat de sortie de l'exemple ci-dessus est :
在循环语句中 i = 0 在循环语句中 i = 1 在循环语句中 i = 2 在循环语句中 i = 3 在循环语句中 i = 4 在循环语句中 i = 5
Ruby jusqu'àModificateur
Syntaxe
code until conditional 或者 begin code end until conditional
Lorsque conditionnel est faux, exécutez le code.
Si le modificateur jusqu'à suit une instruction begin sans rescue ou clause de garantie, le code sera exécuté une fois avant Le conditionnel est jugé.
Instance
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 begin puts("在循环语句中 i = #$i" ) $i +=1; end until $i > $num
Le résultat de sortie de l'exemple ci-dessus est :
在循环语句中 i = 0 在循环语句中 i = 1 在循环语句中 i = 2 在循环语句中 i = 3 在循环语句中 i = 4 在循环语句中 i = 5
Ruby for Statement
Syntaxe
for variable [, variable ...] in expression [do] code end
Calculez d'abord l'expression pour obtenir un objet, puis exécutez le code une fois pour chaque élément de expression.
Instance
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0..5 puts "局部变量的值为 #{i}" end
Ici, nous avons défini la plage 0..5. L'instruction pour i en 0..5 autorise les valeurs de i de 0 à 5 inclus.
Le résultat de sortie de l'exemple ci-dessus est :
局部变量的值为 0 局部变量的值为 1 局部变量的值为 2 局部变量的值为 3 局部变量的值为 4 局部变量的值为 5
for...in La boucle est presque complètement é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 souhaitez écrire la formule for sur une seule ligne, vous devez séparer l'expression conditionnelle ou le bloc de programme par do.
Instance
#!/usr/bin/ruby # -*- coding: UTF-8 -*- (0..5).each do |i| puts "局部变量的值为 #{i}" end
Le résultat de sortie de l'exemple ci-dessus est :
局部变量的值为 0 局部变量的值为 1 局部变量的值为 2 局部变量的值为 3 局部变量的值为 4 局部变量的值为 5
Ruby break Déclaration
Syntaxe
break
Termine la boucle la plus interne. S'il est appelé dans un bloc, termine la méthode du bloc concerné (la méthode renvoie zéro).
Instance
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0..5 if i > 2 then break end puts "局部变量的值为 #{i}" end
Le résultat de sortie de l'exemple ci-dessus est :
局部变量的值为 0 局部变量的值为 1 局部变量的值为 2
Ruby next Statement
Syntaxe
next
Passer à l'itération suivante de la boucle. S'il est appelé dans un bloc, termine l'exécution du bloc (l'expression yield renvoie zéro).
Exemple
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0..5 if i < 2 then next end puts "局部变量的值为 #{i}" end
Le résultat de sortie de l'exemple ci-dessus est :
局部变量的值为 2 局部变量的值为 3 局部变量的值为 4 局部变量的值为 5
Ruby redo Statement
Syntaxe
redo
Redémarre l'itération de la boucle la plus interne sans vérifier la condition de la boucle. Si vous êtes appelé dans un bloc, redémarrez yield ou call.
Instance
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0..5 if i < 2 then puts "局部变量的值为 #{i}" redo end end
Cela produira les résultats suivants et entrera dans une boucle infinie :
局部变量的值为 0 局部变量的值为 0 ............................
Ruby retry Statement
Remarque : les versions 1.9 et ultérieures ne prennent pas en charge l'utilisation de nouvelles tentatives en boucle.
Syntaxe
retry
Si retry apparaît dans la clause de sauvetage d'une expression de début, redémarrez depuis le début du corps de début.
begin do_something # 抛出的异常 rescue # 处理错误 retry # 重新从 begin 开始 end
Redémarrez l'appel d'itération si une nouvelle tentative se produit dans une itération, dans un bloc ou dans le corps d'une expression for. Les paramètres d'itération sont réévalués.
for i in 1..5 retry if some_condition # 重新从 i == 1 开始 end
Instance
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 1..5 retry if i > 2 puts "局部变量的值为 #{i}" end
Cela produira les résultats suivants et entrera dans une boucle infinie :
局部变量的值为 1 局部变量的值为 2 局部变量的值为 1 局部变量的值为 2 局部变量的值为 1 局部变量的值为 2 ............................