Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Операторы управления программой 57
ной цикла. Условие инициализации выполняется только один раз, при первом вхо- де в for. Затем проверяется условие. Подобно циклу while, цикл for выполняется до тех пор, пока условие не станет ложным. После того как выполнится код тела цикла, управление получит следующий пара- метр цикла for (увеличение) и значение счетчика изменится. Затем опять будет вы- полнена проверка условия, и процесс повторится. В этом параметре обычно записы- вают инкрементное или декрементное выражение, которое определяет характер изме- нения переменной цикла на каждой итерации, но в принципе ограничений на используемые здесь операторы нет. Цикл for можно заменить эквивалентным ему циклом while:
(условие)
/ / ... тело цикла } увеличение; } Все три параметра цикла for являются необязательными. C++ игнорирует отсут- ствие части инициализации или цикла, а если опущено условие, C++ бу- дет выполнять цикл for вечно (или пока какой-либо другой оператор не передаст управление за пределы цикла). Для лучшего понимания цикла for рассмотрим пример. Приведенная ниже программа ForDemo выполняет то же, что и whileDemo, но вместо while использу- ет for. // Вводится счетчик // На экран выводится количество выполненных // циклов
#include
i n t arg , char * pszArgs[] ) {
// ввод счетчика цикла int cout « "Введите loopCount: ; >> loopCount;
// работаем, пока не нарушится условие for (int i = i > 0; { cout << "Осталось выполнить " << << " } return } Программа ForDemo выполняет те же действия, что и ранее рассмотренная Demo. Однако вместо изменения переменной loopCount в этом варианте программы введена специальная переменная цикла. Выполнение цикла начинается с объявления этой переменной i и инициализации ее значением переменной loopCount. Затем проверяется, является ли переменная i положительной. Если да, то программа выводит уменьшенное на 1 значение i и воз- вращается к началу цикла.
58 Часть I. Первое знакомство с C++ Цикл также удобен и тогда, когда значение переменной цикла необходимо увеличивать, а не уменьшать. Это осуществляется небольшим изменением цикла for. // Вводится счетчик цикла. //Н а экран выводится количество выполненных // for
#include
arg, char* { // ввод счетчика цикла int << "Введите "; cin » loopCount;
// вычисляем, пока не нарушится условие for (int i = i <= loopCount; cout << "Мы завершили " << i « " цикл\п"; } return 0;
Согласно последнему стандарту языка индексная переменная, объявлен- ная в части инициализации цикла известна только в пределах этого цикла. Программисты на C+ + этом случае говорят, что область види- мости переменной ограничена циклом for. Например, в инструкции retur n рассмотренного выше примера, т.е. за пределами цикла, пере- менная i недоступна и не может использоваться. Однако этого новей- шего правила придерживаются далеко не все компиляторы, и вам нужно протестировать свой компилятор, чтобы узнать, как он действует в этом случае. Вы можете задать вопрос: если цикл for эквивалентен циклу while, зачем заби- вать себе им голову? Цикл намного легче для понимания, поскольку главные час- ти любого цикла for (инициализация, условие, увеличение) имеют фиксированное местоположение и соответствуют стандартному формату записи. |
Последнее изменение этой страницы: 2019-04-19; Просмотров: 192; Нарушение авторского права страницы