Читаем Освой самостоятельно С++ за 21 день. полностью

Поскольку синтаксис оператора for позволяет использовать при его описании цикла достаточно сложные конструкции, необходимость в теле цикла иногда вообще отпадает. Это означает, что тело цикла будет состоять из пустой строки, заканчивающейся символом точки с запятой (;). Данный символ можно размещать в одной строке с оператором for. Пример пустого цикла приведен в листинге 7.13.

Листинг 7.13. Использование оператора for для организации пустого цикла

1: // Листинг 7.13.

2: // Использование оператора for

3: // для организации "пустого" цикла

4:

5: #include

6: int main

7: {

8:    for (int i = 0; i<5; cout << "i: " << i++ << endl)

9:    ;

10:   return 0;

11: }


Результат:

i: 0

i: 1

i: 2

i: 3

i: 4


Анализ: Оператор for в строке 8 содержит все три параметра. Инициализация в данном случае состоит из описания переменной i и присвоения ей значения 0. Затем проверяется условие i<5, и, если оно выполняется, в третьей части оператора for значение переменной выводится на экран и увеличивается на единицу.

Поскольку все необходимые операции выполняются в самом операторе for, тело цикла можно оставить пустым. Такой вариант нельзя назвать оптимальным, так как запись в одной строке большого количества операций значительно усложняет восприятие программы. Правильнее было бы записать этот цикл таким образом:


8: for (int i = 0; i<5; i++)

9: cout << "i: " << i << endl;


Оба варианта записи равноценны, однако второй вариант гораздо читабельнее и понятнее.

Вложенные циклы

Цикл, организованный в теле другого цикла, называют вложенным. В этом случае внутренний цикл полностью выполняется на каждой итерации внешнего цикла. Листинг 7.14 демонстрирует заполнение элементов матрицы с помощью вложенного цикла.

Листинг 7.14. Вложенные циклы

1: // Листинг 7.14.

2: // Вложенные циклы с оператором for

3:

4: #include

5:

6: int main

7: {

8:    int rows, columns;

9:    char theChar;

10:   cout << "How many rows? ";

11:   cin >> rows;

12:   cout << "How many columns? ";

13:   cin >> columns;

14:   cout << "What character? ";

15;   cin >> theChar;

Перейти на страницу:

Похожие книги

Сущность технологии СОМ. Библиотека программиста
Сущность технологии СОМ. Библиотека программиста

В этой книге СОМ исследуется с точки зрения разработчика C++. Написанная ведущим специалистом по модели компонентных объектов СОМ, она раскрывает сущность СОМ, помогая разработчикам правильно понять не только методы модели программирования СОМ, но и ее основу. Понимание мотивов создания СОМ и ее аспектов, касающихся распределенных систем, чрезвычайно важно для тех разработчиков, которые желают пойти дальше простейших приложений СОМ и стать по-настоящему эффективными СОМ-программистами. Показывая, почему СОМ для распределенных систем (Distributed СОМ) работает именно так, а не иначе, Дон Бокс дает вам возможность применять эту модель творчески и эффективно для ежедневных задач программирования.

Дональд Бокс

Программирование, программы, базы данных / Программирование / Книги по IT