Тип результата выражения в правой части может отличаться от типа переменной левой части оператора присвоения. Перед выполнением операции присвоения тип результата выражения автоматически приводится к типу переменной левой части оператора присвоения.
Пример:
1)а=в=с=е=0;
операция выполняется справа налево, т.е. 0 присваивается а,в,с,е.
2) а=(в=с)*d
В примере сначала переименованной в присваивается значение переменной с, а затем вычисляется выражение в*d и результат присваивается переменной а.
Сокращенные формы оператора присвоения.
а=а+а; → а+=а;
+= прибавляет величину правой части оператора к переменной левой части и запоминает результат в переменной левой части оператора.
Формат:
а on =b; или а=а on (в);
где on – одна из операций: +, -, *, /, %-остаток от деления,
<<, >>-сдвиг,
& -и,
^-сложение по модулю 2,
|-или.
Пример:
а*=в+1; → а=а*(в+1);
а /=в; → а=а/в;
*=, /=, +=, -=.
Префиксные операции: ++а, --а - вначале выполнятся операция, затем применяется переменная.
Постфиксные операции: а++, а-- - вначале применяется переменная, затем выполняется операция.
Пример:
а=в*++n; → n=n+1; а=в*n;
а=в*n++; → а=в*n; n=n+1;
Операторы сложные бывают составными и структурированными.
Составной оператор используется там, где синтаксис языка требует использования 1-го оператора, а необходимо выполнить несколько операторов. Выполнение составного оператора приводит к выполнению заключенной в нем последовательности.
Формат составного оператора:
{блок }
Составной оператор (блок) состоит из нескольких операторов любого типа, заключенные в фигурные скобки. После закрывающейся фигурной скобки не должно быть точки с запятой.
К структурированным операторам относятся операторы условия, цикла, варианта.
Одним из ключей к проектированию интеллектуальных программ является предоставление им возможности от результата поставленного условия (истина или лож),выполнить одну группу операторов или другую.
Такой выбор реализуется оператором if.
Формат:
“ if ” (B) s1;
[“else” s2;] // конструкция необязательная
Где
В – условие принятия решения, выражения любого типа (круглые скобки вокруг Вобязательны). Тип проверочного условия if приводится к bool, поэтому ноль трактуется как false, а все, что отличается от нуля – как true