Приведем снова текст программы.
#include<iostream.h> main () { int x,z,y; x = y=0; while (y<10) ++y; x += y; cout << x << " " << y << endl; /* Управление 1 */ x = y=0; while (y<10) x += ++y; cout << x << " " << y << endl; /* Управление 2 */ y = 1; while (y<10) { x = y++; z = ++y; } cout << x << " " << y << " " << z << endl;/* Управление 3 */ for (y=1; y<10; y++) x = y; cout << x << " " << y << endl; /* Управление 4 */ for (y=1; (x=y)<10; y++) ; cout << x << " " << y << endl; /* Управление 5 */ for (x=0,y=1000; y>1; x++,y/=10) cout << x << " " << y << endl; /* Управление 6 */ }
Результаты работы программы:
10 10 55 10 9 11 11 9 10 10 10 0 1000 1 100 2 10
Комментарии.
x = 0; y = 0;
Для данного цикла y является управляющей переменной. Начальное значение управляющей переменной - это значение, которое имеет такая переменная при первом выполнении тела цикла.
while (y<10)
Условием продолжения цикла является y<10. Тело цикла будет выполнятся до тех пор, пока условие продолжения цикла - "истина". Условие выхода из данного цикла y>=10. Это отрицание условия продолжения цикла, и в случае нормального окончания цикла оно имеет значение "истина".
++y;
x += y;
x = 10;
x = 0;
y = 0;
while (y<0)
x += ++y;
Изменение управляющей переменной осуществляется с помощью операции ++y. К значению x прибавляется значение y после увеличения на 1.
x = 55; Сумма всех целых чисел от 1 до 10.
y = 1; while (y<0) Условие продолжения цикла (y<10); условие выхода из цикла (y>=10). { Изменение управляющей переменной осуществляется с помощью операций y++ и ++y, и при каждом выполнении тела цикла зна- чение y увеличивается на 2. x = y++; x = 1,3,5,7,9; z = ++y; z = 3,5,7,9,11; }
for (y=1; y<10; y++) Условие продолжения цикла (y<10); условие выхода из цикла (y>=10). x = y; y в цикле изменяется от 1 до 10, x изменяется от 1 до 9.
for (y=1; (x=y)<10; y++) Условие продолжения цикла (x=y)<10; условие выхода из цикла (x=y)>=10. Как раз перед вычислением условия продолжения цикла x принимает значение y. Заметим, что условие продолжения цикла вычисляется на один раз больше, чем выполняется тело. ; y в цикле изменяется от 1 до 10, x изменяется от 1 до 10.
for (x=0,y=1000; y>1; x++,y/=10) Условие продолжения цикла (y>1); условие выхода из цикла (y<=1). cout << x << " " << y << endl; В цикле y принимает значения 1000, 100, 10, а x - значения 0, 1, 2.