Скачиваний:
4
Добавлен:
20.05.2014
Размер:
301.57 Кб
Скачать

5.4 Операции инкремента, декремента и сокращенные

формы операции присваивания

Рассмотрим некоторые дополнительные формы оператора присваивания,

определяющие стиль языка С++. Очень часто в программах нужно увеличивать

или уменьшать значение некоторой целой переменной на единицу, что легко

сделать с помощью оператора присваивания, например, j = j + 1.

Оператор j = j + 1 обычно записывают как j + + , т.е. используют операцию

инкремента ++ (автоувеличение). Она означает увеличение переменной на единицу.

Запись j++ соответствует увеличению после использования, а запись ++j

увеличивает значение j до его использования. Аналогичная операция декремента - - ( автоуменьшение) приводит к уменьшению переменной на единицу. Как и в случае инкремента, операция декремента существует в двух формах, например, m - - или - - m . Рассмотрим ещё одну возможость использования обычных арифметических операций перед знаком равенства в операторе присваивания, что дает его сокращенную

форму. В отличие от (5.1) эта форма имеет следующий вид: имя oп = выражение ;

где оп – это любая из операций + - * / , например, d * = sin (x);

Новое присваивание с “оп” называется “оп” с присваиванием, например,

умножение с присваиванием в d *= sin(x).

При любой операции оп сокращенная форма эквивалентна обычной записи

имя = имя оп выражение;

Например, увеличение значения j на 5 можно записать как

j = j + 5 ; или j + = 5 ;

а увеличение d на единицу d + + ; d+=1; d = d +1 ;

В последнем случае обычно применяется запись d + +

5.5 Оператор цикла

Программ без циклов практически не бывает.

Оператор цикла позволяет многократно выполнять любую группу операторов.

Эту группу повторяющихся операторов называют телом цикла.

В простых циклах при каждом выполнении обычно изменяется некоторая

переменная, называемая как "переменная цикла". Существуют различные

операторы цикла, но здесь рассмотрим только один, в котором

ключевым словом является слово for , т.е. " для ".

Есть и другие операторы цикла - с ключевыми словами do и while.

Цикл for можно представить следующим образом:

for ( параметры цикла ) тело цикла

Оператор с for является началом цикла. После for в круглых скобках

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

функции. Это параметры цикла. После закрывающей круглой скобки записывается тело цикла. Тело цикла - это один оператор с ; в конце или группа операторов в фигурных скобках.

В С++ группа операторов в фигурных скобках называется блоком и есть правило:

точка с запятой обычно не ставится после закрывающей фигурной скобки блока.

Основные части оператора цикла for записываются следующим образом:

for ( инициализация ; условие ; изменение) оператор ; (5.4)

или

for ( инициализация ; условие ; изменение ) { операторы; }

Примеры:

for ( k=0; k<10; k=k+1 ) cout << sin(k)<< endl ; (5.5)

for ( s=1, m = k = 0; k<10; k++, m=k*k ) { s = s+m; x= sin(k); } (5.6)

В частях “инициализация” и “изменение” можно использовать один или более операторов. Если операторов несколько, то они разделяются запятыми, а не точкой с запятой. Видим, что после операторов в группе “изменение” и после } блока нет точки с запятой, т.к. скобка или фигурная скобка ее заменяют. Следовательно, концом цикла является точка с запятой в случае одного оператора в теле цикла или закрывающая фигурная скобка для блока

операторов в теле цикла.

Рассмотрим параметры цикла подробнее. При инициализации задаются значения переменных цикла при первом выполнении, т.е. начальные значения. Инициализация выполняется только один раз - при запуске цикла. Условие в (5.4) является условием, при котором продолжается выполнение цикла. Это условие проверяется при каждом выполнении цикла. Если условие нарушено, т.е. значение условия равно нулю, то операторы тела цикла пропускаются и цикл завершается. Отметим, что любое значение условия, не равное нулю,

является “истиной”, т.е. ложь представляется только нулем.

Изменение – это один или группа операторов, разделенных запятыми, которые выполняются в конце каждого повторения тела цикла, т.е. перед повторной проверкой условия.

В примере (5.5) при первом выполнении цикла k=0, при втором k=1, далее k= 2 и т.д. Когда получится значение k =10, то цикл не выполняется, а продолжается исполнение программы после цикла. В примере параметрами цикла выбраны простыми, но возможно использование сложных функций и выражений.

Рассмотрим тип переменной цикла, например, k в примере (5.5) . Хотя она может быть как целой, так и вещественной, но рекомендуется применять целый тип. Это связано с тем, что погрешности округления вещественных переменных могут привести к неправильному количеству

выполнений цикла, т.е. к неправильному количеству итераций. Итерация - это одно полнение цикла в математике, т.к. в латыни itero означает "повторять".

Возможны вложенные циклы, например,

. . . .

for ( i = 0; i < 5; i + + ) // (5.7)

{ s=0; for ( j = 1; j<7; j + +)

{ x = 1. / j; s + = x * cos(j) * exp(- (float)i /j) ; }

cout << i << ‘\t’ << s << endl;

} . . . .

Соседние файлы в папке Шпора по информатике