Логические операции

Иногда бывает полезным объединить два или более условных выражения. Например, нам нужно подсчитать, сколько символов не является пробелами, символами новая строка и табуляции. Напишем такую программу:

/* число символов */main(){ int ch; int count=0; while((ch=getchar())!= EOF) if(ch!=' ' && ch!= '\n' && ch!= '\t') count++; printf("Всего %d непустых символов. \n", count);}

Оператор, использующий логическую операцию и, обозначаемую &&. Смысл действий, осуществляемых оператором if, можно пояснить так:

Операция Смысл
&& И
|| ИЛИ
! НЕ

Если прочитанный символ - не пробел и не символ "новая строка", и не символ табуляции, то происходит увеличение значения переменной count на единицу. Все выражение будет истинным, если указанные три условия - истинны. В языке Си имеются три логические операции.

Операция условия:?:

В языке Си имеется короткий способ записи одного из видов оператора if-else. Он называется "условным выражением" и использует операцию условия -?:. Эта операция состоит из двух частей и содержит три операнда. Рассмотрим, как можно найти абсолютное значение числа:

x = (y < 0)? -y: y;

Все, что находится между знаком = и символом "точка с запятой" представляет собой условное выражение. Смысл этого оператора заключается в следующем: если y меньше 0, то x=-y; в противном случае x=y. В терминах оператора if-else данный оператор мог выглядеть так:

if (y < 0) x=-y;else x=y;

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

выражение1? выражение2: выражение3

Если выражение1 истинно (не равно нулю), то значением всего условного выражения является величина выражение2; если выражение1 ложно (равно 0), то значение всего условного выражения - величина выражение3.

! Условное выражение удобно использовать в тех случаях, когда имеется некоторая переменная, которой можно присвоить одно из двух возможных значений. Использование условных выражений не является обязательным, поскольку тех же результатов можно достичь при помощи оператора if-else. Однако условные выражения более компактны, и их применение обычно приводит к получению более компактного машинного кода.

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



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