05.09.2016 Views

Стефан Р. - С++ Для чайников

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ной цикла. Условие инициализации выполняется только один раз, при первом входе<br />

в цикл for.<br />

Затем проверяется условие. Подобно циклу while, цикл for выполняется до тех<br />

пор, пока условие не станет ложным.<br />

После того как выполнится код тела цикла, управление получит следующий параметр<br />

цикла for (увеличение) и значение счетчика изменится. Затем опять будет выполнена<br />

проверка условия, и процесс повторится. В этом параметре обычно записывают<br />

инкрементное или декрементное выражение, которое определяет характер изменения<br />

переменной цикла на каждой итерации, но в принципе ограничений на<br />

используемые здесь операторы нет.<br />

Цикл for можно заменить эквивалентным ему циклом while:<br />

инициализация;<br />

while (условие)<br />

/ / ... тело цикла<br />

}<br />

увеличение;<br />

}<br />

Все три параметра цикла for являются необязательными. C++ игнорирует отсутствие<br />

части инициализации или увеличения цикла, а если опущено условие, C++ будет<br />

выполнять цикл for вечно (или пока какой-либо другой оператор не передаст<br />

управление за пределы цикла).<br />

<strong>Для</strong> лучшего понимания цикла for рассмотрим пример. Приведенная ниже<br />

программа ForDemo выполняет то же, что и whileDemo, но вместо while использует<br />

цикл for.<br />

// ForDemo. Вводится счетчик цикла.<br />

// На экран выводится количество выполненных<br />

// циклов for<br />

#include <br />

#include <br />

int main(int arg, char* pszArgs[])<br />

{<br />

}<br />

// ввод счетчика цикла<br />

int loopCount;<br />

cout « "Введите loopCount: " ;<br />

сin >> loopCount;<br />

// работаем, пока не нарушится условие<br />

for (int i = loopCount; i > 0; i—><br />

{<br />

cout

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!