Шаг 31.
Цикл for. Использование операции "запятая"

    Здесь мы рассмотрим частный случай использования операции "запятая".

    В заголовке цикла можно использовать операцию "запятая". Напомним, что операция "запятая" связывает два выражения в одно и гарантирует, что самое левое выражение будет вычисляться первым. Обычно она используется для включения дополнительной информации в заголовок цикла for. Например:

   1. for  (step=2,forgo=0; forgo<1000; step*=2)
         forgo += step;
   2. for  (i=1,j=1; i<10,j<10; i++,j++)
         z = i+j;

    Однако не думайте, что приведенный в п.2. цикл является краткой записью двух вложенных циклов:

   for  (i=1; i<10; i++)
      for  (j=1; j<10; j++)
         z = i+j;

    Таким образом, в различные части оператора for можно включить несколько выражений, например, для параллельного изменения двух индексов:

   for  (; i==j; i++,j++)
      ...

    Пример 1.

   #include<iostream.h>
   main ()
   {
      for  (int x=1,y=1,z=1; x<101,y<101,z<101; x++,y++,z++)
         if  (y*y+z*z==x*x)
            cout << "x=" << x <<" y=" << y <<" z=" << z << endl;
   }
Текст этой программы можно взять здесь.

    При выполнении этой программы ничего не будет выведено на экран, так как переменные x, y, z одновременно будут принимать значения 1, 2, 3 и т.д.

    Пример 2.

   #include<iostream.h>
   main ()
   {
      for  (int x=1,y=1,z=1; x<10; x++,y++,z++)
         cout << "x=" << x << "y=" << y << "z=" << z << endl;
   }
Текст этой программы можно взять здесь.

Результаты работы программы:

   x=1 y=1 z=1
   x=2 y=2 z=2
   x=3 y=3 z=3
   x=4 y=4 z=4
   x=5 y=5 z=5
   x=6 y=6 z=6
   x=7 y=7 z=7
   x=8 y=8 z=8
   x=9 y=9 z=9

    Изменим текст последней программы, добавив в цикл условие y<5. Таким образом, текст программы примет следующий вид:

   #include<iostream.h>
   main ()
   {
      for  (int x=1,y=1,z=1; x<10,y<5; x++,y++,z++)
         cout << "x=" << x << "y=" << y << "z=" << z << endl;
   }
Текст этой программы можно взять здесь.

Что будет выведено на экран при ее выполнении? Ниже приведены результаты работы этой программы:

   x=1 y=1 z=1
   x=2 y=2 z=2
   x=3 y=3 z=3
   x=4 y=4 z=4

Отсюда можно сделать вывод, что в данном случае операция "запятая" выполняет роль логической операции "И" (&&).

    Применение операции "запятая" не ограничивается только циклами for, но именно в них она используется особенно часто.

    Со следующего шага мы начнем разбирать операторы передачи управления.


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