Menu
Coddy logo textTech

Цикл Times

Часть раздела Основы путешествия по Ruby на Coddy — урок 44 из 88.

Ruby предлагает более элегантный способ повторения кода определенное количество раз. Цикл times — это подход в стиле Ruby, который читается почти как предложение на английском языке.

Вместо того чтобы настраивать диапазон, вы просто вызываете times у числа:

3.times do
  puts "Hello!"
end

Это выводит «Hello!» три раза. Код внутри блока do...end выполняется ровно 3 раза. Это чище, чем писать for i in 1..3, когда вам не нужна переменная-счетчик.

Но что, если вам нужно знать, на какой итерации вы находитесь? Цикл times может предоставлять индекс, который начинается с 0:

4.times do |i|
  puts i
end
# Выводит: 0, 1, 2, 3

Переменная i между вертикальными чертами |i| получает номер текущей итерации. Обратите внимание, что отсчет начинается с 0, а не с 1. Это полезно, когда вам нужны и повторение, и счетчик:

3.times do |num|
  puts "Iteration #{num + 1}"
end
# Вывод: Iteration 1, Iteration 2, Iteration 3

Цикл times идеально подходит, когда вы точно знаете, сколько повторений вам нужно, и хотите получить чистый, читаемый код.

challenge icon

Задание

Легко

Прочитайте число n из входных данных. Используйте цикл times с его индексом, чтобы вывести таблицу умножения для числа 2, показывая произведения от 2 x 0 до 2 x (n-1).

Каждая строка должна соответствовать формату: 2 x [index] = [result]

Входные данные будут представлять собой одно целое число, указывающее, сколько раз должен выполниться цикл.

Например, если на вход подается 4, вывод должен быть следующим:

2 x 0 = 0
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6

Если на вход подается 6, вывод должен быть следующим:

2 x 0 = 0
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10

Шпаргалка

Цикл times повторяет код заданное количество раз:

3.times do
  puts "Hello!"
end

Чтобы получить доступ к номеру текущей итерации (начиная с 0), используйте переменную между вертикальными чертами:

4.times do |i|
  puts i
end
# Выводит: 0, 1, 2, 3

Вы можете использовать переменную индекса в вычислениях:

3.times do |num|
  puts "Iteration #{num + 1}"
end
# Выводит: Iteration 1, Iteration 2, Iteration 3

Попробуйте сами

# Считать количество итераций
n = gets.to_i

# TODO: Напишите свой код ниже
# Используйте цикл times с его индексом, чтобы вывести таблицу умножения на 2
# Формат: 2 x [индекс] = [результат]
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы