Слайд 1Операторы break и continue
IT-Квантум. Введение в программирование на основе языка
python
Слайд 2Мы познакомились с циклами с циклами whilе и for. В
циклах while отдельный фрагмент кода исполняется повторно до тех
пор, пока истинно какое-либо условие. В циклах for код исполняется повторно, когда не закончится последовательность.
На этом занятии мы познакомимся с условиями прерывания и повторения циклов при помощи операторов: break и continue
Слайд 4Программист свободен сам выбирать, как и когда завершить цикл while.
До сих пор вы использовали для этого лишь условие цикла, однако
в вашем распоряжении есть команда break, которая позволяет выйти из цикла в любой момент. С английского break переводится как отмена.
Из каждого правила бывают исключения. Возьмем, к примеру, конвейер для сборки часов. Допустим, в какой-то момент на сборочной линии заканчивается та или иная деталь. В отсутствие необходимого компонента конвейер останавливается в середине цикла сборки. Несмотря на то что сборка не завершена, линия все равно должна быть остановлена, пока не будет пополнен запас нужных деталей.
Подобные сбои случаются и в работе компьютеров. Например, во время загрузки данных из Интернета происходит сбой в сети, и соединение обрывается. Поток данных временно прекращается, в результате чего приложение завершает работу, хотя файл так и не был загружен.
Слайд 6Программа выполняется в бесконечном цикле, т.к. True всегда является истиной.
Внутри цикла происходит ввод значения с клавиатуры и проверка введенного
значения.
Инструкция break осуществляет выход из цикла.
В подобных программах необходимо внимательно следить за преобразованием типов данных.
Слайд 8На этом принципе можно составить программу, которая будет считать и
ее выполнение прекратится только после того, когда программа дойдет до
оператора break
Слайд 9Один из способов использовать команду break — поместить ее внутрь конструкции if,
находящейся в теле цикла. В этом случае цикл завершит свою работу, когда
условие if вернет True. Следующая программа будет раз за разом запрашивать команду, пока вы не введете слово "выход"
Слайд 10Этот цикл бесконечный, ведь в качестве условия у него указано True.
На каждой
его итерации запрашивается ввод команды. Затем с помощью конструкции if программа
проверяет, ввел ли пользователь слово "выход" . Если так и есть, выполняется команда break, которая останавливает цикл. После этого программа продолжает работать со строки, идущей сразу после тела while, и выводит сообщение "Цикл завершен”.
Слайд 11А теперь давайте
вспомним нашу игру
“Угадай число” и
применим
для этой
игры оператор break
Слайд 15Инструкция continue вызывает немедленный переход в начало цикла. Она иногда
позволяет избежать использования вложенных инструкций. В следующем примере инструкция используется
для пропуска нечетных чисел. Этот фрагмент выводит четные числа меньше 10 и больше или равные 0. Вспомним, что число 0 означает ложь, а оператор % вычисляет остаток от деления, поэтому данный цикл выводит числа в обратном порядке, пропуская значения, не кратные 2 (он выводит8 6 4 2 0):
Слайд 17Из-за того, что continue инициирует переход в начало цикла, нет
необходимости вкладывать print внутрь проверки if; оператор print достигается, только
если не будет выполнен continue. Оператор continue должен использоваться умеренно, особенно когда вы лишь начинаете программировать на Python. Скажем, последний пример может стать яснее, если print вложить в if:
Слайд 20ФЛАГИ
Мы писали программы, которые выполняли некоторые операции, пока заданное условие
оставалось истинным. А что если вы пишете более сложную программу,
выполнение которой может прерываться по нескольким разным условиям?
Например, компьютерная игра может завершаться по разным причинам: у игрока кончились все «жизни»; прошло отведенное время; все города, которые он должен был защищать, были уничтожены и т. д. Игра должна завершаться при выполнении любого из этих условий. Попытки проверять все возможные условия в одной команде while быстро усложняются и становятся слишком громоздкими.
Слайд 21Если программа должна выполняться только при истинности нескольких условий, определите
одну переменную-флаг. Эта переменная сообщает, должна ли программа выполняться далее.
Программу можно написать так, чтобы она продолжала выполнение, если флаг находится в состоянии True, и завершалась, если любое из нескольких событий перевело флаг в состояние False. В результате в команде while достаточно проверить всего одно условие: находится ли флаг в состоянии True. Все остальные проверки (которые должны определить, произошло ли событие, переводящее флаг в состояние False) удобно организуются в остальном коде.
Флаг, который мы назовем active (хотя переменная может называться как угодно), управляет тем, должно ли продолжаться выполнение программы:
Слайд 23В переменной active присваивается True, чтобы программа начинала работу в
активном состоянии. Это присваивание упрощает команду while, потому что в
самой команде while никакие сравнения не выполняются; вся логика реализуется в других частях программы. Пока переменная active остается равной True, цикл выполняется.
В команде if внутри цикла while значение message проверяется после того, как пользователь введет данные. Если пользователь ввел строку 'quit' , флаг active переходит в состояние False, а цикл while останавливается. Если пользователь ввел любой текст, кроме 'quit' , то введенные им данные выводятся как сообщение.
Слайд 24В программе имеется флаг, указывающий, находится ли она в активном
состоянии, и вы сможете легко добавить новые проверки (в форме
команд elif) для событий, с которыми переменная active может перейти в состояние False. Это может быть удобно в сложных программах — например, в компьютерных играх с многочисленными событиями, каждое из которых может привести к завершению программы.
Когда по любому из этих событий флаг active переходит в состояние False, основной игровой цикл прервется, выводится сообщение о завершении игры, и у игрока появляется возможность сыграть еще раз.
Слайд 26Задание #1
Дополнения для пиццы: напишите цикл, который предлагает пользователю вводить
дополнения для пиццы до тех пор, пока не будет введено
значение 'quit’. При вводе каждого дополнения выведите сообщение о том, что это дополнение включено в заказ.
Слайд 27Задание #2
Билеты в кино:
кинотеатр установил несколько вариантов цены на
билеты в зависимости от возраста посетителя. Для посетителей младше 3
лет билет бесплатный; в возрасте от 3 до 12 билет стоит 150 рублей наконец, если возраст посетителя больше 12, билет стоит 250 рублей.
Напишите цикл, который предлагает пользователю ввести возраст и выводит цену билета.
Слайд 28Жду от вас ответы в виде скринов.
спасибо за внимание!