Оператор 'break'
Часть раздела Fundamentals путешествия по Lua на Coddy — урок 75 из 90.
Иногда вам нужно выйти из цикла до того, как он завершится естественным образом. Оператор break дает вам такую возможность — он немедленно останавливает текущий цикл и переходит к коду, который следует за end цикла.
Вот как break работает в простом примере:
for i = 1, 10 do
if i == 5 then
break
end
print(i)
end
print("Loop finished!")Этот цикл обычно выводил бы числа от 1 до 10, но оператор break останавливает его, когда i равно 5. Таким образом, он выводит только 1, 2, 3, 4, а затем сразу переходит к «Loop finished!»
Задание
ЛегкоСоздайте систему поиска сокровищ, которая использует цикл for с оператором break для поиска в серии сундуков с сокровищами. Начните с создания переменной с именем targetTreasure и присвойте ей значение 7.
Напишите цикл for, который просматривает сундуки с сокровищами под номерами от 1 до 10. Внутри цикла выведите сообщение "Searching chest: ", за которым следует текущий номер сундука. Затем проверьте, равен ли текущий номер сундука значению targetTreasure. Если он совпадает, выведите "Treasure found!" и используйте оператор break, чтобы немедленно выйти из цикла.
После завершения цикла (естественным образом или из-за break) выведите "Search complete", чтобы указать, что сеанс поиска сокровищ окончен.
Шпаргалка
Оператор break немедленно останавливает текущий цикл и переходит к коду после end цикла:
for i = 1, 10 do
if i == 5 then
break
end
print(i)
end
print("Loop finished!")Это выведет 1, 2, 3, 4, а затем перейдет к "Loop finished!", когда i равно 5.
Попробуйте сами
-- Установите целевое сокровище
local targetTreasure = 7
-- TODO: Напишите ваш код здесь
-- Создайте цикл for, который ищет в сундуках с 1 по 10
-- Выведите "Searching chest: ", а затем номер сундука
-- Проверьте, равен ли номер сундука targetTreasure
-- Если найдено, выведите "Treasure found!" и прервите цикл
-- После цикла выведите "Search complete"В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела 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'Повторение — Обратный отсчёт