Le meilleur didacticiel cycle de Ruby en 2024, dans ce didacticiel, vous pouvez apprendre Rubywhile,Rubytout modificateur,Rubyjusqu'à déclarations,Rubyjusqu'à modificateurs,Rubypour la déclaration,Rubyinstruction break,Rubydéclaration suivante,Rubydéclaration redo,Rubyinstruction retry,
Rubis dans la boucle pour effectuer le même bloc de code plusieurs fois. Cette section détaillera toutes les boucles de soutien Ruby.
while conditional [do] code end
ou
<pre> while conditional [:] code end
Lorsque laconditionest vraie, il exécute lecode.
Ou faire la syntaxe: vous pouvez être omis. Mais pour écrire une formule alors que dans la ligne, ou vous devez faire: expression ou d'un programme en dehors du conditionnel blocs.
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 while $i < $num do puts("在循环语句中 i = #$i" ) $i +=1 end
L'exemple ci-dessus sortie est:
在循环语句中 i = 0 在循环语句中 i = 1 在循环语句中 i = 2 在循环语句中 i = 3 在循环语句中 i = 4
code while condition 或者 begin code end while conditional
Lorsque laconditionest vraie, il exécute lecode.
Sialors quedans un modificateur sanssauvetageou tardcommencerdéclaration assurer laclause,le code sera exécutée une fois avant que le jugementconditionnel.
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 begin puts("在循环语句中 i = #$i" ) $i +=1 end while $i < $num
L'exemple ci-dessus sortie est:
在循环语句中 i = 0 在循环语句中 i = 1 在循环语句中 i = 2 在循环语句中 i = 3 在循环语句中 i = 4
until conditional [do] code end
Lorsque leconditionnelest faux, d' exécuter ducode.
Syntaxe do peut être omise. Mais pour écrire jusqu'à ce que la formule, vous devez faire l'expression ou de programme blocs conditionnels en dehors de la ligne.
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 until $i > $num do puts("在循环语句中 i = #$i" ) $i +=1; end
L'exemple ci-dessus sortie est:
在循环语句中 i = 0 在循环语句中 i = 1 在循环语句中 i = 2 在循环语句中 i = 3 在循环语句中 i = 4 在循环语句中 i = 5
code until conditional 或者 begin code end until conditional
Lorsque leconditionnelest faux, d' exécuter ducode.
Sijusqu'àprésent modificateur dans une déclarationcommençantpas desauvetageou tard veiller à laclause,le code sera exécutée une fois avant que le jugementconditionnel.
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 begin puts("在循环语句中 i = #$i" ) $i +=1; end until $i > $num
L'exemple ci-dessus sortie est:
在循环语句中 i = 0 在循环语句中 i = 1 在循环语句中 i = 2 在循环语句中 i = 3 在循环语句中 i = 4 在循环语句中 i = 5
for variable [, variable fr.] in expression [do] code end
Première expression de calcul pour obtenir un objet, alorsl'expressionpour chaque élément séparément uncode.
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0fr5 puts "局部变量的值为 #{i}" end
Ici, nous avons défini la gamme 0fr5. Déclaration for i in 0fr5 permettre à la valeur de i 0-5 (avec 5).
L'exemple ci-dessus sortie est:
局部变量的值为 0 局部变量的值为 1 局部变量的值为 2 局部变量的值为 3 局部变量的值为 4 局部变量的值为 5
fr. dansla boucle est presque exactement équivalente à:
(expression).each do |variable[, variablefr.]| code end
Cependant, pour la boucle ne crée pas un nouveau champ d'application pour les variables locales.
Syntaxe do peut être omise. Mais à écrire pour la formule dans une rangée, alors vous devez faire expression ou programme blocs en dehors conditionnelles.
#!/usr/bin/ruby # -*- coding: UTF-8 -*- (0fr5).each do |i| puts "局部变量的值为 #{i}" end
L'exemple ci-dessus sortie est:
局部变量的值为 0 局部变量的值为 1 局部变量的值为 2 局部变量的值为 3 局部变量的值为 4 局部变量的值为 5
break
Fin de la boucle la plus interne. Si vous avez invoqué dans le bloc, le bloc est lié à la terminaison (la méthode retourne nil).
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0fr5 if i > 2 then break end puts "局部变量的值为 #{i}" end
L'exemple ci-dessus sortie est:
局部变量的值为 0 局部变量的值为 1 局部变量的值为 2
next
Aller à la prochaine itération de la boucle. Si vous appelez dans le bloc se termine le bloc d'exécution(rendementexpression renvoie nil).
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0fr5 if i < 2 then next end puts "局部变量的值为 #{i}" end
L'exemple ci-dessus sortie est:
局部变量的值为 2 局部变量的值为 3 局部变量的值为 4 局部变量的值为 5
redo
Redémarrage de l'itération de boucle la plus interne, la condition de boucle est pas cochée. Si vous appelez dans le bloc, puis redémarrez lerendementouappel.
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0fr5 if i < 2 then puts "局部变量的值为 #{i}" redo end end
Cela produit les résultats suivants, et entrera dans une boucle infinie:
局部变量的值为 0 局部变量的值为 0 frfrfrfrfrfrfrfrfrfrfrfrfrfr
NOTE: 1.9 et versions ultérieures ne prennent pas en charge l'utilisation nouvelle tentative dans une boucle.
retry
Siretryapparaît dans l'expression commencer clause de sauvetage, depuis le début du corps commencent à redémarrer.
begin do_something # 抛出的异常 rescue # 处理错误 retry # 重新从 begin 开始 end
Si retry apparaît dans l'itération, ou pour l'expression dans le corps, réitère les appels au sein du bloc. paramètres de Iteration réévaluées.
for i in 1fr5 retry if some_condition # 重新从 i == 1 开始 end
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 1fr5 retry if i > 2 puts "局部变量的值为 #{i}" end
Cela produit les résultats suivants, et entrera dans une boucle infinie:
局部变量的值为 1 局部变量的值为 2 局部变量的值为 1 局部变量的值为 2 局部变量的值为 1 局部变量的值为 2 frfrfrfrfrfrfrfrfrfrfrfrfrfr