Условный оператор if. Оператор преобразования типов

Операторы ветвления

ОПЕРАТОРЫ

Оператор преобразования типов

Операции деления

Логические и побитовые операции

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 чаще всего используются операции отношения, это не обязательно.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: