Компьютерные программы часто должны выполнять действия несколько раз, а не только один раз. Например, программа, которая печатает все ваше новое электронное письмо, должна будет печатать каждое электронное письмо из списка, а не только одно электронное письмо. Для этого используются конструкции, называемые циклами. Цикл повторит заявления внутри него несколько раз, пока не будет выполнено какое-либо условие.
Пока петли
Первый тип этих циклов - цикл while. Циклы while будут выполнять все содержащиеся в них операторы, пока условный оператор остается верным. В этом примере цикл постоянно увеличивает значение переменной я одним. Пока условное утверждение я <10 true, цикл продолжит выполнение оператора я + = 1 который добавляет один к переменной.
#! / usr / bin / env ruby
я = 0
пока я <10
я + = 1
конец
ставит я
До петель
До тех пор пока циклы почти идентичны циклам while, за исключением того, что они будут циклическими, пока ложный. Цикл while будет циклическим, пока условие выполнено, цикл до того как
условие верно. Этот пример является функциональным эквивалентом примера цикла while, за исключением того, что используется цикл пока я == 10 . Переменная увеличивается на единицу, пока ее значение не станет равным десяти.#! / usr / bin / env ruby
я = 0
пока я == 10
я + = 1
конец
ставит я
Петли "Рубиновый Путь"
Хотя в программах на Ruby используются более традиционные циклы while и till, циклы на основе замыканий встречаются чаще. Даже не нужно понимать, что такое замыкания или как они работают, чтобы использовать эти циклы; на самом деле они рассматриваются как обычные петли, несмотря на то, что под капотом они сильно отличаются.
The Times Loop
раз Цикл может использоваться для любой переменной, содержащей число, или для самого числа. В следующем примере первый цикл запускается 3 раза, а второй цикл запускается, однако пользователь вводит много раз. Если вы введете 12, он будет работать 12 раз. Вы заметите, что цикл раз использует точку синтаксис (3.times) вместо синтаксиса ключевого слова, используемого циклом while и till. Это связано с тем, как цикл работает под капотом, но он используется таким же образом некоторое время или пока не будет использован цикл.
#! / usr / bin / env ruby
3 раза
ставит "Это будет напечатано 3 раза"
конец
выведите «Введите число:»
num = gets.chomp.to_i
число дел
ставит "Руби это здорово!"
конец
Каждая петля
каждый цикл, пожалуй, самый полезный из всех циклов. Каждый цикл будет принимать список переменных и запускать блок операторов для каждой из них. Поскольку почти все вычислительные задачи используют списки переменных и должны что-то делать с каждой из них в списке, каждый цикл является наиболее распространенным циклом в Рубиновый код. Здесь следует обратить внимание на аргумент блока операторов цикла. Значение текущей переменной, на которую смотрит цикл, присваивается имени переменной в символах канала, которое | П | в примере. При первом запуске цикла N переменная будет равна «Fred», во второй раз цикл будет равен «Bob» и так далее.
#! / usr / bin / env ruby
# Список имен
names = ["Fred", "Bob", "Jim"]
names.each do | n |
ставит "Hello # {n}"
конец