Step 1 (S-14690)

From Stepik Wiki
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/3365/step/1


Для работы с циклами есть пара полезных операторов. Это операторы break и continue. Давайте посмотрим, как они работают на примере одной задачи. Задача заключается в следующем: нам нужно прочитать пять пар чисел, введенных пользователем, и для каждой пары чисел вывести их произведение. Это можно сделать с помощью цикла while.

S-14690-1.png

Заведем переменную i (счетчик количества циклов) и присвоим ей значение 0. Далее создаем цикл: пока переменная i меньше или равна 5, считываем ввод пользователя, преобразовываем его числа и выводим произведение. После этого увеличиваем значение счетчика i на единицу. В итоге данный цикл прочитает пять пар чисел a и b и для каждой пары выведет их произведение. Все достаточно просто и понятно.

Теперь немного изменим нашу задачу

Добавим условие, в случае когда пользователь ввел два ноля, наша программа должна досрочно завершиться. Например, пользователь ввел 2 и 2, программа вывела 4, далее были введены 0 и 0, программа завершила свою работу и ничего не вывела. Как это можно сделать? Для этого можно использовать в цикле break.

S-14690-2.png

Оператор break позволять досрочно завершить цикл. В данном случае это можно использовать следующим образом. Мы используем примерно тот же самый алгоритм, но после чтения и преобразования в числа мы добавим дополнительную проверку. В случае, когда числа а и b одновременно равны 0, мы используем оператор break и досрочно выходим из цикла. При этом весь код, написанный ниже в теле цикла, не выполняется. Последующие итерации тоже не будут исполнены. Управление перейдет на те команды, что идут после цикла.

Иногда используют оператор break в связке с else. После цикла мы добавляем конструкцию else:, после которой пишем команды, которые будут выполнены в случае, когда выход из цикла осуществлен не по оператору break. Например, мы можем вывести сообщение "Выведены 5 чисел".

S-14690-3.png

Если все пять пар чисел были прочитаны и перемножены (это означает, что оператор break не сработал), будет выведено это сообщение.

Еще один оператор о котором стоит упомянуть, это оператор continue. Он позволяет завершить текущую итерацию цикла и перейти к следующей. Еще раз изменим нашу задачу. Наложим на нее дополнительное условие. В случае, если одно из введенных чисел равно 0, будет игнорировать такую пару и переходить к следующему вводу.

S-14690-4.png

Запишем проверку дополнительного условия после проверки чисел на одновременное равенство 0. В случае, когда одно из чисел равно 0, управление перейдет в начало цикла, а весь код внутри итерации, следующий за этой проверкой не будет выполнен. Таким образом, мы можем ввести большое количество пар чисел, но выведены будут, только 5 пар с допустимыми значениями, либо программа завершится по введению пары чисел 0 и 0.