Условия: if, elseif и логические операторы
Писать ветвления и правильно комбинировать условия.
Теория
Условие — это вопрос, на который код отвечает «да» или «нет». Если ответ «да», выполняется блок после then. Если нет — проверяется elseif, а если не подошло ничего, работает else.
Сравнения: == равно, ~= не равно, < > <= >=. Обрати внимание: «не равно» в Luau пишется ~=, а не !=. Один знак = — это присваивание, и в условии он вызовет ошибку.
Слова and, or и not соединяют условия. and требует, чтобы верны были оба, or — чтобы хотя бы одно, not переворачивает ответ.
- Проверку на существование объекта пишут просто: if part then
- Скобки в сложных условиях не роскошь, а способ не ошибиться в порядке
- Вложенные if легко заменяются ранним выходом через return
- Сравнивать число со строкой нельзя — будет ошибка
Пример
Скрипт решает, пускать ли игрока в комнату, по уровню и наличию ключа.
local level = 7local hasKey = falseif level >= 10 thenprint("Проходи, уровня достаточно")elseif level >= 5 and hasKey thenprint("Проходи, ключ подошёл")elseif not hasKey thenprint("Нужен ключ")elseprint("Слишком низкий уровень")end
Задача
Напиши проверку здоровья: больше 70 — «в порядке», от 30 до 70 — «нужна аптечка», меньше 30 — «критично», ровно 0 — «персонаж повержен».
- Самое узкое условие проверяй первым, иначе оно никогда не сработает
Показать решение
local health = 25if health == 0 thenprint("персонаж повержен")elseif health < 30 thenprint("критично")elseif health <= 70 thenprint("нужна аптечка")elseprint("в порядке")end
Проверь себя
Как в Luau пишется «не равно»?
Показать ответ
В Luau «не равно» — это ~=. Знак != вызовет ошибку синтаксиса.
Когда истинно выражение a and b?
Показать ответ
and требует истинности обоих. Достаточно одного — это or.