Шаг 29.
Циклические конструкции. Цикл for

    На этом шаге мы рассмотрим синтаксис и применение оператора for.

    Этот цикл является циклом с известным заранее числом повторений. Его общий вид:

     for (<инициализация цикла>;<выражение-условие>;<список_выражений>) 
                       <тело цикла>;

    Здесь инициализация цикла - это последовательность определений (описаний) и выражений, разделяемых запятыми. Все выражения, входящие в инициализацию цикла, вычисляются только один раз при входе в цикл. Чаще всего здесь устанавливаются начальные значения счетчиков и параметров цикла. Под выражением-условием понимается конструкция, ранее описанная в циклах while и do: если она равна 0, то выполнение цикла прекращается. В случае отсутствия выражения-условия следующий за ним разделитель "точка с запятой" сохраняется. При отсутствии выражения-условия предполагается, что его значение всегда истинно. Это справедливо также в случае отсутствия секции инициализация цикла. Выражения из списка выражений вычисляются на каждой итерации после выполнения операторов тела цикла. Тело цикла может быть отдельным оператором, составным оператором или пустым оператором.

    Рассмотрим несколько примеров с использованием цикла for.

    Пример. Составить программу по нахождению суммы квадратов первых k натуральных чисел.

#include <iostream.h>
void main()
{
	int k;
	cout << "\nЗадайте число: ";
	cin >> k;
	cout << '\n';
	for (int i=1,s=0;i<=k;i++)
		        s+=i*i;
	cout << "\nРезультат: " << s << '\n';
}
Текст этой программы можно взять здесь.

    В этом примере цикл for можно записать таким образом:

       	for (int i=0,s=0;i <k; s+=++i*i) ;
Для создания бесконечного цикла нужно подобрать такое выражение-условие, которое бы не изменялось в процессе выполнения цикла, оставаясь постоянно истинным, или отсутствовало. Приведем примеры заголовков бесконечных циклов:
                      for (;;) 
                      for (;1;)

    Параметры, входящие в выражения, находящиеся в заголовке цикла for, можно изменить при выполнении операций в теле цикла.

    Предположим, например, что имеется цикл со спецификацией следующего вида:

     for  (n=1; n<1000; n+=delta)

    Если после нескольких итераций программа "решает", что величина параметра delta слишком мала или велика, оператор if внутри цикла может изменить значение этого параметра. Таким образом, в диалоговой программе пользователь может изменить этот параметр в процессе выполнения цикла.

    Цикл for часто используется для реализации в программе временной задержки.

      ... ... ...
   for (n=1; n<=10000; n++);
      ... ... ...

    Этот цикл заставляет компьютер считать до 10000. Единственный символ ";" в теле цикла информирует о том, что никаких других действий в цикле не производится.

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

    На следующем шаге мы приведем несколько примеров использования цикла for.


Предыдущий шаг Содержание Следующий шаг