Наименование предмета: Основы алгоритмизации и программирование
Тема лекции: Цикл while. Цикл for. Операторы break, continue
Исполнитель: Старший преподаватель кафедры ТКСС Касымова Галия Кадылбековна
Контакты: g.kasymova@aues.kz
Циклы
Компьютеры умеют намного больше, чем просто хранить данные. Они анализируют, объединяют, упорядочивают, извлекают, модифицируют, экстраполируют, синтезируют и выполняют другие манипуляции над данными. Иногда они даже искажают и уничтожают данные, но мы стараемся контролировать такое их поведение.
Чтобы творить все эти чудеса, программам необходимы инструменты для выполнения повторяющихся действий и принятия решений. Конечно, язык C++ предоставляет такие инструменты. На самом деле в нем используются те же циклы for, while, do while и операторы if, switch, которые есть в языке С. Все эти разнообразные управляющие операторы часто используют выражения сравнения и логические выражения для обеспечения должного поведения программы.
Цикл for
Обстоятельства часто требуют от программ выполнения повторяющихся задач, таких как сложение элементов массивов один за другим или 20-кратная распечатка похвалы за продуктивность. Цикл for облегчает выполнение задач подобного рода.
Ниже показан вывод программы
Цикл for
Этот цикл начинается с присваивания целочисленной переменной i значения 0: i = 0; Это - часть инициализации цикла. Затем в части проверки цикла программа проверяет, меньше ли i числа 5:
Если это так, программа выполняет следующий оператор, который называется телом цикла:
После этого программа активизирует часть обновления цикла, увеличивая i на 1:
В части обновления цикла используется операция ++, которая называется операцией инкремента. Она увеличивает значение своего операнда на 1. (Применение операции инкремента не ограничено циклами for. Например, можно использовать i+ + ; вместо i = i + 1; в качестве оператора программы.) Инкрементирование i завершает первый проход цикла. Далее цикл начинает новый проход, сравнивая новое значение i с 5. Поскольку новое значение (1) также меньше 5, цикл печатает еще одну строку и завершается снова инкрементированием i. Это подготавливает новый проход цикла — проверку, выполнение оператора и обновление значения i. Процесс продолжается до тех пор, пока не i не получит значение 5. После этого следующая проверка дает ложный результат, и программа переходит к оператору, следующему за циклом.
Цикл for
Цикл while
Цикл while — это цикл for, у которого удалены инициализирующая и обновляющая части; в нем имеется только проверочное условие и тело:
Сначала программа вычисляет выражение проверочное_условие в скобках. Если выражение дает в результате true, программа выполняет оператор (или операторы), содержащийся в теле цикла. Как и в случае с циклом for, тело состоит из единственного оператора либо блока, определенного фигурными скобками. После того, как завершено выполнение тела, программа возвращается к проверочному условию и заново вычисляет его. Если условие возвращает ненулевое значение, программа снова выполняет тело. Этот цикл проверки и выполнения продолжается до тех пор, пока проверочное условие не вернет false. Понятно, что если вы хотите в конечном итоге прервать цикл, то в теле цикла должно происходить нечто такое, что повлияет на выражение проверочного условия. Например, цикл может увеличивать значение переменной, используемой в проверочном условии, либо читать новое значение, вводимое с клавиатуры. Подобно for, цикл while является циклом с входным условием. То есть, если проверочное условие оценивается как false в самом начале, то программа ни разу не выполнит тело цикла.
Цикл while
Оператор switch
Оба оператора — switch и if else — позволяют выбирать из списка альтернатив. Однако if else из них является более гибким оператором. Например, он позволяет обрабатывать диапазоны, как показано в следующем примере:
В отличие от этого, оператор switch не позволяет обрабатывать диапазоны. Каждая метка case оператора switch должна быть представлена одиночным значением. К тому же значение должно быть целым (что включает char), поэтому оператор switch не может проверять значения с плавающей точкой. К тому же значение метки case должно быть константой. Если вам необходимо проверять диапазоны, выполнять проверку значений с плавающей точкой или сравнивать две переменные, то вам следует использовать if else.
Операторы break и continue
Операторы break и continue позволяют программе пропускать часть кода. Оператор break можно использовать в операторе switch и в любых циклах. Он вызывает немедленную передачу управления за пределы текущего оператора switch или цикла. Оператор continue применяется только в циклах и вынуждает программу пропустить остаток тела цикла и сразу начать следующую итерацию