В языке Си отсутствует логический тип данных. Выражения, обрабатывающие логические значения с помощью операций отношения и логических операций, сравнивают каждый операнд с нулем (0). Если операнд равен нулю (=0), то его значение ложно, а если операнд не равен нулю (!=0), то его значение истинно. Результат операций отношения или логических может быть 0 (ложь) или 1 (истина).
Отношение сравнивает два операнда, связанных операцией отношения. Операндами отношения являются арифметические выражения, например:
a>0; sin(x+1)<=0.5; p/r==0; z%y!=0; p*x-2.5>=r-2.
Логические операции имеют относительные приоритеты согласно таблице, начиная со старшего (1):
Приоритет | Название операции | Математичес-кие символы | Операция в Си |
Отрицание (НЕ) | Ø | ! | |
Отношения | <, £, =, ¹, ³, > | <, <=, =,!=, >=, > | |
Логическое умножение (И) | Ù | && | |
Логическое сложение (ИЛИ) | Ú | | | |
Логическое выражение образуется как комбинация отношений, логических операций и круглых скобок, например,
|
|
математическая запись: логическое выражение на Си:
x ³ a Ù x £ b x >= a && x < b
Ø a Ú x < b!a || x < b
x > a Ù Ø (x < b) x > a &&! (x < b)
Результаты применения логических операций можно представить в виде таблицы истинности, где значение операторов А и В показаны как 0 (ноль) и!0 (не ноль), а результаты операций как 0 (ложь) и 1 (истина):
А | В | !А | А&&В | А || В |
!0 | ||||
!0 | ||||
!0 | !0 |
В Си операторы логических выражений вычисляются слева направо и, если значения первого операнда достаточно для определения результата операции, то второй операнд не вычисляется.
Пример. Пусть x = 4, a = 5, тогда при вычислении логического выражения
x >= a && x <= b
результат первого операнда = 0 (ложь) и результат операции && = 0, независимо от второго операнда.
Работа с ветвящимися процессами
Операторы
Оператор – это предложение в тексте программы, заканчивающееся точкой с запятой (;), выполняющее некоторое действие в соответствии с алгоритмом задачи. К простым операторам относятся: оператор-выражение, операторы присваивания, вызова процедуры, операторы передачи управления, пустой оператор, составной оператор.
К сложным операторам относятся: условный оператор, оператор- переключатель, операторы цикла.