Цикл 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, когда это делает ваше намерение более понятным, особенно когда вы ждете наступления определенного условия.
Задание
ЛегкоПрочитайте число 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!"В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логикаЛогические операторы. Часть 3Логические операторы. Часть 47Калькулятор разделения счета
Приветственное сообщениеПолучение пользовательского ввода13Продвинутая работа с массивами
Срезы массивов через диапазоныСрезы массивов через индексыОператоры массивовМетод include?2Переменные и типы данных
Числа и переменныеСтроковый тип данныхЛогический тип данныхТип данных SymbolПроверка типов данныхПравила именованияПовторение: создание переменных5Принятие решений
Оператор IfКонструкция If - ElseПовторение — Простой калькуляторВложенные конструкции If - ElseОператор Unless8Циклы
Цикл For с диапазонамиЦикл WhileОператор BreakОператор NextПовторение: ФакториалЦикл TimesЦикл UntilВложенные циклыПовторение: Динамический ввод3Операторы. Часть 1
Арифметические операторыОператор остатка от деленияСокращенная арифметикаИтоги: простая математикаОператоры сравнения6Основы ввода-вывода
Вывод с помощью putsВывод с помощью print и pВывод с переменнымиВвод с помощью getsМетод chompПреобразование типовИтоги — Калькулятор возрастаИтоги — Истина или ложь