Операторы ветвления
ОПЕРАТОРЫ
Оператор преобразования типов
Операции деления
Логические и побитовые операции
int x=3,y =5,z;
Таблицы истинности | логические | поразрядные | |||||||||
| Z= (x>10) && (y<10): /* z=0*/ Z= (x<10) && (y<10):/*z=1*/ | Z=x & y; /*z= 1*/ | |||||||||
| Z= (x>10) || (y<10): /* z=1*/ Z= (x>10) || (y>10):/*z=0*/ | Z=x | y; /*z= 7*/ | |||||||||
| Z=x ^ y; /*z= 6*/ |
% - остаток от деления. Операция применима только к целым операндам.
/ - деление. Если операнды целые, то результат этой операции – целое число.
Пример.
int x=13.y=2,z;
double a;
z= x/y; // z=6
z= x/y; // a=6
a=(double)x/(double)y; //a=6,5
Оператор «выражение»
Любое выражение, завершающееся точкой с запятой, рассматривается как оператор, выполнение которого заключается в вычислении выражения. Частным случаем выражения является пустой оператор «;». (он используется, когда по синтаксису оператор требуется, а по смыслу - нет). Примеры:
i++; // выполняется операция инкремента
|
|
а* = b + с; // выполняется умножение с присваиванием
Условный оператор if используется для разветвления процесса вычислений на два направления. Формат оператора:
if (выражение) оператор_l; [ else оператор_2;]
Сначала вычисляется выражение, которое может иметь арифметический тип или тип указателя. Если оно не равно нулю (имеет значение истина), выполняется первый оператор, иначе - второй. После этого управление передается на оператор, следующий за условным.
Одна из ветвей может отсутствовать, логичнее опускать вторую ветвь вместе с ключевым словом еlse. Если в какой-либо ветви требуется выполнить несколько операторов, их необходимо заключить в блок, иначе компилятор не сможет понять, где заканчивается ветвление. Блок может содержать любые операторы, в том числе описания и другие условные операторы (но не может состоять из одних описаний). Необходимо учитывать, что переменная, описанная в блоке, вне блока не существует.
if (b>а) тах = b; else тах = а:
Примеры:
1. if (а<0) b = 1;
Отсутствует ветвь еlse. Подобная конструкция называется пропуск оператора», поскольку присваивание либо выполняется, либо пропускается в зависимости от выполнения условия.
2. if (а<b && (a>d || а==0))
b ++;
else {b *= а; а = 0:}
Если требуется проверить несколько условий, их объединяют знаками логических операций. Например, выражение будет истинно в том случае, если выполнится одновременно условие а<b и одно из условий в скобках. Если опустить внутренние скобки, будет выполнено сначала логическое И, а потом ИЛИ.
3. if (а<b)
{if (а<с)
т = а;
else т = с:}
else {if (b<с)
т = b;
else т = с:}
|
|
Вычисление наименьшего значения из трех переменных. Фигурные скобки в данном случае не обязательны, так как компилятор относит часть еlse к ближайшему if.
4. if (а++) b++:
Хотя в качестве выражений в операторе if чаще всего используются операции отношения, это не обязательно.