ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В 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, влияют на работу цикла.

 

5