Добавил:
Оставь надежду всяк сюда поступивший Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Синников С++ / IV New hope.doc
Скачиваний:
63
Добавлен:
13.01.2019
Размер:
282.11 Кб
Скачать

13. Операцию присваивания

Охарактеризуем основные операции языка Си. Сначала рассмотрим одну из них - операцию присваивания (=). Выражение вида

х = у;

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

x = y = z = 100;

Рассмотрим стандартный оператор присваивания в си (операции присваивания в языке программирования C ни чем не отливаются от операторов присваивания в таких языках, как php или паскаль)

i = i + 5 (пример 1)

Это выражение в буквальном смысле означает: «Извлечь переменную i, прибавить к переменной i число 5, и записать получившийся результат в переменную i».

Подобная запись логична и понятна для пользователя, который читает программу на C, однако в некоторых случая она может быть чересчур громоздка. Рассмотрим такое выражение:

abs[xwt[32+y]-xwt[285*x]-ads[32-z]] = abs[xwt[32+y]-xwt[285*x]-ads[32-z]] + 5 (пример 2)

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

В качестве оператора присваивания в языке си предпочтительнее использовать такую запись: i + = 5,

Которая эквивалентна записи i = i + 5.

Наш нечитабельный пример, в левой части которого стояло математическое выражение, теперь можно переписать в сокращенном виде: abs[xwt[32+y]-xwt[285*x]-ads[32-z]] + = 5

В этой конструкции знак «+=» — это оператор присваивания в языке си.

В операциях, где присутствуют 2 аргумента по обе стороны от знака «=» (в левой и правой частях), возможны также и другие операторы присваивания. Вот они: +—*/%>><<&/\|

Выражения с этими знаками записываются так же, как и операция присваивания со сложением. Рассмотрим эти операторы присваивания подробнее:

a += b эквивалентно присваиванию со сложением: a = a + b

a -= b эквивалентно присваиванию с вычитанием: a = a — b

a *= b эквивалентно присваиванию с умножением: a = a * b

a /= b эквивалентно присваиванию с делением: a = a / b

a %= b эквивалентно присваиванию с остатком от деления: a = a % b

a >>= b эквивалентно присваиванию со сдвигом вправо: a = a >> b

a <<= b эквивалентно присваиванию со сдвигом влево: a = a << b

a &= b эквивалентно присваиванию с поразрядным И: a = a & b

a /\ = b эквивалентно присваиванию с поразрядным исключающим ИЛИ: a = a /\ b

a |= b эквивалентно присваиванию с поразрядным включающим ИЛИ: a = a | b

14 Оператор while формально записывается в таком виде:

while (выражение) тело_цикла

Выражение в скобках может принимать ненулевое (истинное) или нулевое (ложное) значение. Если оно истинно, то выполняется тело цикла и выражение вычисляется снова. Если выражение ложно, то цикл while заканчивается.

15 Оператор do-while формально записывается следующим образом:

do {тело_цикла} while (выражение);

Основным отличием между циклами while и do - while является то, что тело в цикле do - while выполняется по крайней мере один раз. Тело цикла будет выполняться до тех пор, пока выражение в скобках не примет ложное значение. Если оно ложно при входе в цикл, то его тело выполняется ровно один раз.

Допускается вложенность одних циклов в другие, т.е. в теле любого цикла могут появляться операторы for, while и do - while.

В теле цикла могут использоваться новые операторы break и continue. Оператор break обеспечивает немедленный выход из цикла, оператор continue вызывает прекращение очередной и начало следующей итерации.

Соседние файлы в папке Синников С++