Цикл While
Часть раздела Основы путешествия по Ruby на Coddy — урок 40 из 88.
Цикл for отлично работает, когда вы точно знаете, сколько раз нужно повторить действие. Но что, если вы хотите продолжать выполнение цикла до тех пор, пока не изменится определенное условие? Именно здесь на помощь приходит цикл while.
Цикл while продолжает выполняться до тех пор, пока его условие остается истинным:
count = 1
while count <= 3
puts count
count += 1
endЭто выводит 1, 2 и 3. Цикл проверяет условие перед каждой итерацией. Как только count становится равным 4, условие count <= 3 становится ложным, и цикл останавливается.
Основное отличие от цикла for заключается в том, что вы сами управляете моментом завершения цикла, изменяя переменную внутри него. Если вы забудете обновить переменную, цикл будет выполняться бесконечно! Вот пример обратного отсчета:
num = 5
while num > 0
puts num
num -= 1
end
puts "Done!"Этот код выполняет обратный отсчет от 5 до 1, а затем выводит «Done!» после завершения цикла. Цикл while особенно полезен, когда вы заранее не знаете, сколько итераций вам потребуется.
Задание
ЛегкоСчитайте число n из входных данных. Используйте цикл while, чтобы вывести все числа от n до 1, каждое на новой строке. После завершения обратного отсчета выведите Blastoff! на новой строке.
Входные данные будут представлять собой одно целое число — начальное число для обратного отсчета.
Например, если на вход подается 5, вывод должен быть следующим:
5
4
3
2
1
Blastoff!Шпаргалка
Цикл while продолжает выполняться до тех пор, пока его условие остается истинным:
count = 1
while count <= 3
puts count
count += 1
endЦикл проверяет условие перед каждой итерацией. Вы должны обновлять переменную внутри цикла, чтобы в конечном итоге условие стало ложным, иначе цикл будет выполняться бесконечно.
Пример обратного отсчета:
num = 5
while num > 0
puts num
num -= 1
end
puts "Done!"Используйте циклы while, когда вы заранее не знаете, сколько итераций вам понадобится, или когда вы хотите выполнять цикл до тех пор, пока условие не изменится.
Попробуйте сами
# Считать начальное число
n = gets.chomp.to_i
# TODO: Напишите свой код ниже
# Используйте цикл while для вывода чисел от n до 1
# Затем выведите "Blastoff!"В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
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Преобразование типовИтоги — Калькулятор возрастаИтоги — Истина или ложь