a16b2e27

Пояснения:


Управление 1.1

вначале y=1
if ( y!=0 ) x=5; (y!=0) (1!=0) На первом шаге вычисляется условие.
TRUE Так как условие - ИСТИНА, то выполняется первая часть условного оператора.
x=5

Управление 1.2



вначале y=1 if (y==0) x=3; else x=5;
(y==0) FALSE Вычисляем условие.
x=5 Выполняем вторую (ложную) часть условного оператора.

Управление 1.3

вначале y=1 x=1; if (y0) x=3; else x=5;
x=1; if (y0) x=3; else x=5; } Вначале x присваивается 1.

Фигурные скобки показывают вложенность операторов.

(y Условие первого условного оператора - ЛОЖЬ, так что часть оператора, соответствующая истинному значению условия, пропускается. Оператор, следующий за else, находится в первой части первого условного оператора, так как он относится ко второму условному оператору. В языке С действует правило: оператор, следующий за else, относится к ближайшему if.

Управление 1.4

вначале y=1 if ( z=y
(z=(y Начинаем с вычисления первого условия. Как и прежде, мы будем использовать скобки для обозначения соответствия операций и операндов.
(z=(1
(y==0) FALSE Так как условие первого if - ЛОЖЬ, выполняется вторая часть этого оператора, которая опять оказывается условным оператором; знакчит вычисляется его условие.
x=7 Условие - ЛОЖЬ, поэтому выполняется вторая часть второго условного оператора.

Управление 1.5

вначале y=1 if (z=(y==0)) x=5; x=3;
if (z=(y==0)) { x=5; } x=3; Первая часть условного оператора может быть одиночным оператором или блоком и следует сразу за условием.
(z=(y==0)) (z=FALSE) FALSE и z=0 Вычисляем условие.
x=3 Так как условный оператор не имеет второй части, то управление переходит к следующему оператору.

Управление 1.6

вначале y=1 if (x=z=y); x=3;
if (x=z=y) { ; } x=3; Первая часть условного оператора есть пустой оператор.
( x = ( z = y ) ) ( x = ( z = 1) ) (x=1) и z=1 TRUE и x=1 Вычисляем условие.
x=3 Условие - ИСТИНА, поэтому выполняется первая часть оператора, но поскольку там пустой оператор, то выполняется оператор, следующий за условным.


Управление 2.5

for ( y=1; (x=y)<10; y++ );
y<10 Условие продолжения цикла.
y>=10 Условие выхода их цикла.
y=1 Начальное значение.
y++ Изменение.
y=1 до 9 в цикле x=1 до 9 y=10 на выходе Как раз перед вычислением условия продолжения цикла x принимает значение y. Заметим, что условие продолжения цикла вычисляется на один раз больше, чем выполняется тело.
Управление 2.6

for ( x=0, y=1000; y>1; x++, y/=10 ) PRINT2(d,x,y);
y>1 Условие продолжения цикла.
y<=1 Условие выхода их цикла.
y=1000 Начальное значение.
y/=10 Изменение.
y=1000,100 в цикле x=0,1,2 в цикле Перед началом цикла x=0. После выполнения тела цикла, но перед вычислением условия продолжения цикла x увеличивается. (Оператор PRINT2 находится в теле цикла.)
y=1 на выходе x=1 на выходе





Содержание раздела