ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 3) онлайн
Цикл for
Большинство изучающих язык C++ считают цикл for самым легким для понима- ния. Все элементы, контролирующие его выполнение, собраны в одном месте, в то время как в циклах других типов они разбросаны внутри цикла, что зачастую делает логику его работы трудной для понимания.
Цикл for организует выполнение фрагмента программы фиксированное чис- ло раз. Как правило (хотя и не всегда), этот тип цикла используется тогда, когда число раз, за которое должно повториться исполнение кода, известно заранее.
В примере FORDEMO, приведенном ниже, выводятся на экран квадраты целых чисел от 0 до 14:
// fordemo.cpp
// демонстрирует работу простейшего цикла for #include <iostream> using namespace std;
int main() {
int j; // определение счетчика цикла
for (j = 0 ; j < 15 ; j++) // счетчик меняется от 0 до 14
cout << j * j << " "; // квадрат значения j выводится на экран
cout << endl;
return 0;
}
Результат работы программы выглядит так:
0 1 4 9 16 25 36 49 64 81 100 121 144 169 196
Каким образом работает эта программа? Оператор for управляет циклом. Он состоит из ключевого слова for, за которым следуют круглые скобки, содержа- щие три выражения, разделенные точками с запятой:
for (j=0 ; j<15 ; j++)
Первое из трех выражений называют инициализирующим, второе — условием проверки, а третье — инкрементирующим, как показано на рис. 3.1.

Рис. 3.1. Синтаксис цикла for
Эти три выражения, как правило (по не всегда), содержат одну переменную, которую обычно называют счетчиком цикла. В примере FORDEMO счетчиком цик- ла является переменная j. Она определяется до того, как начнет исполняться те- ло цикла.
Под телом цикла понимается та часть кода, которая периодически испол- няется в цикле. В нашем примере тело цикла состоит из единственного опе- ратора
cout << j * j << " ";
Данный оператор печатает квадрат значения переменной j и два пробела после него. Квадрат находится как произведения переменной j самой на себя. Во время исполнения цикла переменная j принимает значения 0, 1, 2, 3 и т. д. до 14, а выводимые значения квадратов соответственно 0, 1, 4, 9, ..., 196.
Обратите внимание на то, что после оператора for отсутствует точка с запя- той (;). Это объясняется тем, что на самом деле оператор for вместе с телом цик- ла представляют из себя один оператор. Это очень важная деталь, поскольку ес- ли поставить после оператора for точку с запятой, то компилятор воспримет это как отсутствие тела цикла, и результат работы программы будет отличаться от задуманного.
Рассмотрим, каким образом три выражения, стоящие в круглых скобках опе- ратора for, влияют на работу цикла.
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
