
- •116 Глава 2
- •2.13. Основы повторения, управляемого счетчиком
- •2.14. Структура повторения for (цикл)
- •120 Глава 2
- •122 Глава 2
- •2.15. Пример использования структуры for
- •124 Глава 2
- •126 Глава 2
- •2.16. Структура множественного выбора switch
- •Глава 2
- •130 Глава 2
- •132 Глава 2
- •2.17. Структура повторения do/while
- •134 Глава 2
- •2.18. Операторы break и continue
- •Глава 2
- •2.19. Логические операции
- •138 Глава 2
- •Глава 2
- •2.21. Заключение по структурному программированию
- •IfcrpyKTypa (единственный выбор)
- •Глава 2
- •Глава 2
- •148 Глава 2
- •Глава 2
- •Глава 2
- •Глава 2
- •156 Глава 2
- •158 Глава 2
- •160 Глава 2
- •2.1. А) следование, выбор и повторение, b) if/else. С) управляемым счет чиком или определенным заранее, d) Метку, сигнал, флаг или лож ный сигнал.
- •162 Глава 2
- •164 Глава 2
- •166 Глава 2
- •168 Глава 2
- •170 Глава 2
- •172 Глава 2
- •174 Глава 2
- •176 Глава 2
- •178 Глава 3
- •Глава 3
- •3.3. Математические библиотечные функции
- •3.4. Функции
- •Глава 3
- •3.5 Определения функций
- •184 Глава 3
- •186 ГлаваЗ
- •3.6. Прототипы функций
- •188 Глава 3
- •3.7. Заголовочные файлы
- •3.8. Генерация случайных чисел
- •Глава 3
- •192 Глава 3
- •194 Глава 3
- •3.9. Пример: азартная игра
- •Глава 3
- •198 Глава 3
- •3.10. Классы памяти
- •200 Глава 3
- •3.11. Правила, определяющие область действия
- •202 Глава 3
- •204 Глава 3
- •3.12 Рекурсия
- •Глава 3
- •6) Значения, возвращаемые после каждого рекурсивного вызова
- •3.13. Пример использования рекурсии: последовательность чисел Фибоначчи
- •Глава 3
- •3.14. Рекурсии или итерации
- •212 Глава 3
- •Глава 3
- •Глава 4
- •Глава 5
- •Глава 6
- •3.15. Функции с пустыми списками параметров
- •214 Глава 3
- •3.16. Встраиваемые функции
2.18. Операторы break и continue
Операторы break и continue изменяют поток управления. Когда оператор break выполняется в структурах wbile, for, do/while или switch, происходит немедленный выход из структуры. Программа продолжает выполнение с первого оператора после структуры. Обычное назначение оператора break — досрочно прерывать цикл или пропустить оставшуюся часть структуры switch (как на рис. 2.22). Рис. 2.26 демонстрирует прерывание в структуре повторения for. Когда структура if определяет, что x стал равен 5, выполняется оператор break. Это вызывает окончание работы оператора for и программа продолжает выполнение с cout после for. Цикл выполняется полностью только четыре раза.
Оператор continue в структурах while, for или do/while вызывает пропуск оставшейся части тела структуры и начинается выполнение следующей итерации цикла. В структурах while и do/while немедленно после выполнения оператора continue производится проверка условия продолжения цикла. В структуре for выполняется выражение приращения, а затем осуществляется проверка условия продолжения. Ранее мы установили, что в большинстве случаев структура while может использоваться вместо for. Единственным исключением является случай, когда выражение приращения в структуре while следует за оператором continue. В этом случае приращение не выполняется до проверки условия продолжения цикла и структура while работает не так, как for. В программе на рис. 2.27 оператор continue используется в структуре for, чтобы пропустить оператор вывода и начать следующую итерацию цикла.
Хороший стиль программирования 2.28
Некоторые программисты чувствуют, что break и continue нарушают структурное программирование. А поскольку результат работы этих операторов, как мы скоро увидим, может быть достигнут технологией структурного программирования, то эти программисты не применяют break и continue.
136
Глава 2
// Применение оператора break в структуре for #include <iostream.h>
main () {
for (int x = 1; x <= 10; x++) { if (x == 5)
break; // прерывание цикла только при x == 5 cout « x « " ";
cout « endl « "Цикл прерван при x == " « x « endl; return 0;
1 2 3 4
Цикл прервам при x == 5
Рис. 2.26. Применение оператора break в структуре for
// Применение оператора continue в структуре for #include <iostream.h>
for (int x = 1; x <= 10; x++) { if (x == 5)
continue; // пропуск оставшейся части цикла
// только при x == 5 cout « x « " ";
cout « endl « "Использован continue для пропуска печати при x
« endl; return 0;
— 5"
1 2 3 4 6 7 8 9 10
Использован continue для пропуска печати при x == 5
Рис. 2.27. Применение оператора continue в структуре for
Совет по повышению эффективности 2.5
При надлежащем использовании операторы break и continue выполняются быстрее, чем соответствующие приемы структурного программирования, которые мы скоро изучим.
Замечание по технике программирования 2.8
Имеется некоторое противоречие между стремлением к технике высококачественного программирования и стремлением к наилучшей эффективности программного обеспечения. Часто достижение одной из этих целей достигается за счет другой.
Управляющие структуры 137