Цикл — многократное прохождение по одному и тому же коду программы. Циклы необходимы программисту для многократного выполнения одного и того же кода, пока истинно какое-то условие. Если условие всегда истинно, то такой цикл называется бесконечным, у такого цикла нет точки выхода.
В языке программирования С++ существуют такие циклы:
- цикл
for - цикл
while - цикл
do while
Тело цикла будет выполняться до тех пор, пока условие будет истинно(т. е. true).
// форма записи оператора цикла for:
for (/*выражение1*/; /*выражение2*/; /*выражение3*/ )
{
/*один оператор или блок операторов*/;
}
Если в теле цикла for должен выполнится один оператор, тогда фигурные скобки можно опустить:
for (/*выражение1*/; /*выражение2*/; /*выражение3*/) /*один оператор*/;
Рассмотрим подробно три выражения записанные в круглых скобках цикла for. Выражение 1 — объявление (и) или инициализация, ранее объявленной, переменной-счетчика, которая будет отвечать за истинность условия в цикле for. Пример:
int counter = 0; // отсюда видно, что была объявлена переменная counter типа int и инициализирована значением 0
Переменная-счетчик всегда должна иметь целочисленный тип данных. Если переменная была объявлена в цикле (все равно в каком), по завершении цикла эта переменная будет уничтожена.
Разница между объявлением и инициализацией переменной:
counter; // объявление переменой count counter = 9; // инициализация целочисленной переменой count значением 9.
Выражение 2 — это условие продолжения цикла for, оно проверяется на истинность.
counter < 10; // условие истинно пока count строго меньше десяти!
Выражение 3 изменяет значение переменной-счетчика. Без выражения 3 цикл считается бесконечным, так как изменение содержимого переменной count выполняться не будет, и если изначально условие было истинным, то цикл будет бесконечным, иначе программа даже не войдет в цикл. Выражения 1, 2, 3 отделяются друг от друга обязательными разделителями, точкой с запятой. Тело цикла обрамляется фигурными скобочками, если тело цикла состоит из одного оператора ,то фигурные скобочки не нужны. Под изменением значения переменной подразумевается уменьшение или приращение значения , например:
for ( int counter = 0; counter < 15; counter++) // выполняется приращение переменной counter с шагом 1 от 0 до 15
++это операция инкремента, увеличение значения переменной на единицу;--это операция декремента, уменьшение значения переменной на единицу.
Очень часто неправильно интерпретируется запись пределов в цикле for, в нашем случае приращение переменной counter выполняется с шагом 1 от 0 до 15. Обратите внимание на конечный предел. В условии продолжения цикла стоит знак отношения строго меньше, а значит, когда значение в переменной counter будет равно 14, выполнится выход из цикла. Ниже показан пример работы программы (см. Рисунок 1).
// for.cpp: определяет точку входа для консольного приложения.
#include "stdafx.h"
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
for (int counter = 0; counter < 15; counter ++ ) // начало цикла
cout << " " << counter; // тело цикла
cout << endl;
system("pause");
return 0;
}
В строках 9, 10 записан цикл for, причём без фигурных скобочек. А раз отсутствуют фигурные скобочки, значит, телом цикла является следующий оператор, после заголовка цикла, в нашем случае — это оператор вывода:
cout << " " << counter; // тело цикла
Заголовком цикла for является строка 9:
for (int counter = 0; counter < 15; counter ++ ) // заголовок цикла
Фигурные скобочки можно не опускать, это кому как удобно. Но в данном случае без фигурных скобочек запись кода более компактна, чем со скобочками.

Рисунок 1 — Цикл for в С++
for ( int counter = 14; counter >= 0; counter --) // декремент переменной counter от 14 до 0 включительно
Ниже показан результат работы программы с использованием декремента, для уменьшения значения переменой-счетчика (см. Рисунок 2).
// for_dec.cpp: определяет точку входа для консольного приложения.
#include "stdafx.h"
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
for (int count = 14; count >= 0; count --) // заголовок цикла
cout << " " << count; // тело цикла
cout << endl;
system("pause");
return 0;
}
В заголовке цикла for в условии продолжения цикла мы использовали нестрогий знак отношения >=, чтобы последним значением переменой-счётчика был 0.

Рисунок 2 — Цикл for в С++
Шаг в цикле for может быть отличным от единицы, а точнее, любым целым числом.
for ( int counter = 0; counter <= 20; counter += 5) // приращение переменной counter от 0 до 20 включительно с шагом 5
В этом случае переменная counter будет равняться 5, 10, 15, и 20, после чего выполнится выход из цикла for.
for ( int counter = 20; counter >= 0; counter -= 5) // изменение переменной counter от 20 до 0 включительно с шагом 5
Далее показан код программы, которая подсчитывает количество чётных чисел в интервале от 0 до 50 включительно.
// for_example.cpp: определяет точку входа для консольного приложения.
#include "stdafx.h"
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
int counter_even = 0;
for (int count = 2; count <= 50; count += 2) // заголовок цикла
counter_even ++; // подсчёт чётных чисел
cout << "number of even numbers = " << counter_even << endl;
system("pause");
return 0;
}
В строке 9 объявлена и инициализирована нулём переменная для хранения количества чётных чисел. В заголовке цикла for в строке 10 переменная counter инициализирована двойкой, так как двойка — первое чётное число, начиная с 0. Шаг цикла равен двум, таким образом следующее чётное число это 4. В строке 11 переменная counter_even инкрементируется на каждом этапе цикла for. Результат работы программы показан ниже (см. Рисунок 3).

Рисунок 3 — Цикл for в С++
Комментарии
mpavelFax
Заработок на дому официальная работа.
Елена Чупина
Шаг в цикле
forможет быть отличным от единицы, а точнее, любым целым числом.1
for(intcounter = 0; counter <= 20; counter += 5)// приращение переменной counter от 0 до 20 включительно с шагом 5В этом случае переменная
counterбудет равняться 5, 10, 15, и 20, после чего выполнится выход из циклаfor.я правильно поняла, что здесь первое значение counter будет не 5, а 0. То есть на экран будет выведено 0 5 10 15 20 ?
Sideshow
Ссылка на статью про цикл while ведёт снова на эту статью про цикл for.
Исправьте, пожалуйста.
Андрей
counter;// объявление переменой countcounter = 9;// инициализация целочисленной переменой count значением 9.А причём counter тогда?
Инна Молодеева
Спасибо большое!