Лучшее руководство по Рубин цикла в 2024 году. В этом руководстве вы можете изучить Рубинв то время как заявление,Рубинв то время как модификатор,Рубин недо заявлений,Рубин недо модификаторов,Рубиндля заявления,Заявление перерываРубин,Рубинследующий оператор,Заявление RedoРубин,Заявление повторных попытокРубин,
Рубин в цикле для выполнения той же блок кода несколько раз. В этом разделе будет подробно все петли поддержки Ruby.
while conditional [do] code end
или
<pre> while conditional [:] code end
Когдаусловнаяправда, он выполняеткод.
Или же синтаксис: вы можете быть опущены. Но чтобы написать формулу в то время как в линии, или вы должны сделать: помимо условного выражения или программные блоки.
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 while $i < $num do puts("在循环语句中 i = #$i" ) $i +=1 end
В приведенном выше примере выход:
在循环语句中 i = 0 在循环语句中 i = 1 在循环语句中 i = 2 在循环语句中 i = 3 在循环语句中 i = 4
code while condition 或者 begin code end while conditional
Когдаусловнаяправда, он выполняеткод.
Если в качестве модификатора, безспасенияили поздноначатьзаявление обеспечитьположение,код будет выполняться один раз передусловногосуждения.
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 begin puts("在循环语句中 i = #$i" ) $i +=1 end while $i < $num
В приведенном выше примере выход:
在循环语句中 i = 0 在循环语句中 i = 1 在循环语句中 i = 2 在循环语句中 i = 3 在循环语句中 i = 4
until conditional [do] code end
Когдаусловнаяложь, выполнитькод.
Синтаксис Do могут быть опущены. Но не писать, пока формулы, вы должны сделать условное выражение или программные блоки друг от друга в ряду.
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 until $i > $num do puts("在循环语句中 i = #$i" ) $i +=1; end
В приведенном выше примере выход:
在循环语句中 i = 0 在循环语句中 i = 1 在循环语句中 i = 2 在循环语句中 i = 3 在循环语句中 i = 4 在循环语句中 i = 5
code until conditional 或者 begin code end until conditional
Когдаусловнаяложь, выполнитькод.
Еслидосих пор модификатор в заявлении , что неспасенияили поздноначатьобеспечитьположение,код будет выполняться один раз передусловногосуждения.
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 begin puts("在循环语句中 i = #$i" ) $i +=1; end until $i > $num
В приведенном выше примере выход:
在循环语句中 i = 0 在循环语句中 i = 1 在循环语句中 i = 2 在循环语句中 i = 3 在循环语句中 i = 4 在循环语句中 i = 5
for variable [, variable ru.] in expression [do] code end
Первое выражение для вычисления , чтобы получить объект, товыражениедля каждого элемента в отдельностикода.
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0ru5 puts "局部变量的值为 #{i}" end
Здесь мы определили диапазон 0ru5. Заявление для I в 0ru5 позволяют значение I от 0 до 5 (с 5).
В приведенном выше примере выход:
局部变量的值为 0 局部变量的值为 1 局部变量的值为 2 局部变量的值为 3 局部变量的值为 4 局部变量的值为 5
для ru. вцикл почти точно соответствует:
(expression).each do |variable[, variableru.]| code end
Однако, цикл не создает новую область видимости для локальных переменных.
Синтаксис Do могут быть опущены. Но писать для формулы в строке, то вы должны делать, кроме условного выражения или программные блоки.
#!/usr/bin/ruby # -*- coding: UTF-8 -*- (0ru5).each do |i| puts "局部变量的值为 #{i}" end
В приведенном выше примере выход:
局部变量的值为 0 局部变量的值为 1 局部变量的值为 2 局部变量的值为 3 局部变量的值为 4 局部变量的值为 5
break
Прекращение внутреннего цикла. Если вызывается в блоке, блок связан с прекращением (метод возвращает ноль).
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0ru5 if i > 2 then break end puts "局部变量的值为 #{i}" end
В приведенном выше примере выход:
局部变量的值为 0 局部变量的值为 1 局部变量的值为 2
next
Перейти к следующей итерации цикла. Если вы звоните в блоке завершает блок исполнения(выходвыражение возвращает ноль).
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0ru5 if i < 2 then next end puts "局部变量的值为 #{i}" end
В приведенном выше примере выход:
局部变量的值为 2 局部变量的值为 3 局部变量的值为 4 局部变量的值为 5
redo
Перезапуск самой внутренней итерации цикла, условие цикла не проверяется. Если вы звоните в блоке, а затем перезапуститьвыходиливызов.
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0ru5 if i < 2 then puts "局部变量的值为 #{i}" redo end end
Это дает следующие результаты, и войдет в бесконечный цикл:
局部变量的值为 0 局部变量的值为 0 rurururururururururururururu
Примечание: 1.9 и более поздние версии не поддерживают использование повторных попыток в цикле.
retry
Еслиповторная попыткапоявляется в выражении начинают пункт восстановления, с начала тела начинают заново начать.
begin do_something # 抛出的异常 rescue # 处理错误 retry # 重新从 begin 开始 end
Если повторная попытка появится в итерации, или для выражения внутри тела, повторно итерацию вызовов в пределах блока. итерационных параметров переоцениваются.
for i in 1ru5 retry if some_condition # 重新从 i == 1 开始 end
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 1ru5 retry if i > 2 puts "局部变量的值为 #{i}" end
Это дает следующие результаты, и войдет в бесконечный цикл:
局部变量的值为 1 局部变量的值为 2 局部变量的值为 1 局部变量的值为 2 局部变量的值为 1 局部变量的值为 2 rurururururururururururururu