С++ для начинающих


         

Выражение вычисляется после выполнения инструкции


(... index < arraySize; ... )

(... iter != ivec.end(); ... )

(... *stl++ = *st2++; ... )

(... char ch = getNextChar(); ... )

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

( ...  ...; ++-index )

( ...  ...; ptr = ptr->next )

( ...  ...; ++i, --j, ++cnt )

( ...  ...; ) // пустое выражение

Для приведенного ниже цикла for

const int sz = 24;

int ia[ sz ];

vector<int> ivec( sz );

for ( int ix = 0; ix < sz; ++ix )     {

    ivec[ ix ] = ix;

    ia[ ix ]= ix;

}

порядок вычислений будет следующим:

1.      инструкция-инициализации выполняется один раз перед началом цикла. В данном примере объявляется переменная ix, которая инициализируется значением 0.

2.      Вычисляется условие. Если оно равно true, выполняется составная инструкция тела цикла. В нашем примере, пока ix меньше sz, значение ix присваивается элементам ivec[ix] и ia[ix]. Когда значением условия станет false, выполнение цикла прекратится. Если самое первое вычисление условия даст false, составная инструкция выполняться не будет.

3.      Вычисляется выражение. Как правило, его используют для модификации переменной, фигурирующей в инструкции-инициализации и проверяемой в условии. В нашем примере ix увеличивается на 1.

Эти три шага представляют собой полную итерацию цикла for. Теперь шаги 2 и 3 будут повторяться до тех пор, пока условие не станет равным false, т.е. ix окажется равным или большим sz.

В инструкции-инициализации можно определить несколько объектов, однако все они должны быть одного типа, так как инструкция объявления допускается только одна:

for ( int ival = 0, *pi = &ia, &ri = val;

    ival < size;

    ++iva1, ++pi, ++ri )


Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий