Menu
Coddy logo textTech

Цикл Until

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

Цикл until является противоположностью цикла while. Вместо того чтобы выполняться, пока условие истинно, он выполняется до тех пор, пока условие не станет истинным. Думайте об этом как о фразе «продолжай, пока это не произойдет».

count = 1
until count > 3
  puts count
  count += 1
end

Это выводит 1, 2, 3. Цикл продолжается до тех пор, пока count > 3 ложно. Как только count становится равным 4, условие становится истинным, и цикл останавливается.

Сравните это с эквивалентным циклом while:

# Эти два цикла делают одно и то же:
while count <= 3    # выполняется, пока это условие ИСТИННО
until count > 3     # выполняется, пока это условие не станет ИСТИННЫМ

Цикл until может сделать ваш код более читаемым, когда вы ждете, пока что-то произойдет. Вот пример обратного отсчета:

num = 5
until num == 0
  puts num
  num -= 1
end
puts "Liftoff!"

Этот код ведет обратный отсчет от 5 до 1, затем выводит "Liftoff!", когда num достигает 0. Используйте until, когда это делает ваше намерение более понятным, особенно когда вы ждете наступления определенного условия.

challenge icon

Задание

Легко

Прочитайте число n из входных данных. Используйте цикл until, чтобы вывести все числа от 1 до n, каждое на новой строке. После достижения n выведите Done! на новой строке.

Цикл должен продолжаться до тех пор, пока счетчик не превысит n.

Входные данные будут представлять собой одно целое число — целевое число.

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

1
2
3
4
Done!

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

1
2
3
4
5
6
Done!

Шпаргалка

Цикл until выполняется до тех пор, пока условие не станет истинным (противоположность while):

count = 1
until count > 3
  puts count
  count += 1
end
# Вывод: 1, 2, 3

Сравнение с циклом while:

while count <= 3    # выполняется, пока это ИСТИНА
until count > 3     # выполняется, пока это не станет ИСТИНОЙ

Пример обратного отсчета:

num = 5
until num == 0
  puts num
  num -= 1
end
puts "Liftoff!"

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

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

# Инициализировать счетчик
counter = 1

# TODO: Напишите свой код ниже
# Используйте цикл until для вывода чисел от 1 до n
# Цикл должен продолжаться до тех пор, пока counter не превысит n


# Вывести "Done!" после цикла
puts "Done!"
quiz iconПроверьте себя

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

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