Цикл while
Часть раздела Fundamentals путешествия по Lua на Coddy — урок 71 из 90.
Цикл while идеально подходит для этого — он продолжает выполнять один и тот же код снова и снова, пока условие остается true.
Базовый синтаксис цикла while выглядит следующим образом:
while condition do
-- код для повторения
endВот простой пример, который выводит числа от 1 до 3:
local count = 1
while count <= 3 do
print(count)
count = count + 1
endЭтот цикл работает, сначала проверяя, является ли count <= 3 истинным. Если это так, выполняется код внутри, выводя текущее число и увеличивая счетчик. Затем условие проверяется снова, и процесс повторяется до тех пор, пока условие не станет ложным.
Задание
ЛегкоСоздайте систему мониторинга здоровья, которая использует цикл while для отслеживания процесса восстановления игрока. Начните с создания переменной с именем playerHealth и присвойте ей значение 25. Затем создайте другую переменную с именем maxHealth и присвойте ей значение 100.
Напишите цикл while, который продолжается до тех пор, пока здоровье игрока меньше его максимального здоровья. Внутри цикла сначала выведите текущее значение здоровья, а затем увеличьте playerHealth на 15. Поскольку вывод происходит до увеличения, последним выведенным значением будет 85 — условие цикла проверяется снова после добавления 15 (что делает playerHealth равным 100), и так как 100 не меньше maxHealth, цикл останавливается без вывода 100.
Ожидаемый результат:2540557085
Шпаргалка
Цикл while повторяет код до тех пор, пока условие остается true:
while condition do
-- код для повторения
endПример, который выводит числа от 1 до 3:
local count = 1
while count <= 3 do
print(count)
count = count + 1
endЦикл проверяет условие, выполняет код, если оно истинно, затем проверяет снова, пока условие не станет ложным.
Попробуйте сами
-- Инициализация здоровья игрока и максимального здоровья
local playerHealth = 25
local maxHealth = 100
-- TODO: Напишите ваш код здесь
-- Создайте цикл while, который продолжается, пока playerHealth < maxHealth
-- Внутри цикла: выведите текущее здоровье, затем увеличьте playerHealth на 15В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Fundamentals
4Операторы 2: Сравнение и логика
Операторы равенстваОператоры сравненияОператор 'and'Оператор 'or'Оператор 'not'Сокращенные вычисленияЗначения Truthy и FalsyИтоги: Простая логика7Основы условной логики
Оператор if-thenОператор if-then-elseОператор elseifИтоги — Сундук с сокровищами10Таблицы, часть 1: Списки
Что такое таблица?Создание таблицыДоступ к элементам по индексуИзменение элементов по индексуОператор длины '#'table.insert()table.remove()Итоги: управление участниками группы13Проект: Простой магазин зелий
Настройка проектаДобавление зелья2Переменные и типы данных
Что такое переменная?ЧислаСтрокиБулевы значенияЗначение 'nil'Функция type()Правила именованияИтоги — Профиль персонажа5Базовый вывод
Вывод литераловВывод переменныхВывод нескольких значенийОбъединение строк и переменныхФункция tostring()ВводПриведение типовПовторение — Отчет о состоянииПовторение — До 1208Основы работы со строками
string.len()string.upper и string.lowerstring.sub()string.rep()string.find()Повторение — Форматирование имени пользователя3Операторы 1: Арифметика и конкатенация
Арифметические операторыОператор остатка от деленияОператор возведения в степеньКонкатенация строкПриоритет операторовПовторение: Простые вычисления6Проект: Вывод характеристик персонажа
Приветственное сообщениеОбъявление характеристик персонажа9Основы функций
Объявление функцииВызов функцииФункции с параметрамиФункции с несколькими параметрамиОператор 'return'Повторение — Калькулятор площади12Основы циклов
Цикл whileЦикл repeat-untilЧисловой цикл forЦикл for с шагомОператор 'break'Повторение — Обратный отсчёт