Цикл 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 # выполнять, пока это TRUE
until count > 3 # выполнять, пока это не TRUEЦикл 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!Попробуйте сами
# Прочитать целевое число
n = gets.to_i
# Инициализировать счётчик
counter = 1
# TODO: Напишите свой код ниже
# Используйте цикл until для вывода чисел от 1 до n
# Цикл должен продолжаться, пока counter не превысит n
# Выведите точный текст из инструкций после цикла
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Преобразование типовИтоги — Калькулятор возрастаИтоги — Истина или ложьПотренируйтесь самостоятельно: Онлайн-компилятор Ruby