На этом шаге мы перечислим эти операторы и рассмотрим особенности их использования.
Операндами в выражениях на основе логических операторов являются значения логического типа (true или false), и результатом таких выражений также являются значения логического типа. Логические операторы полезны для того, чтобы на основе некоторых простых условий (логических значений) получить новое более сложное условие (логическое). Логические операторы перечислены и кратко описаны в таблице 1.
Оператор | Описание |
---|---|
& | Оператор "логическое и". Результатом выражения А&В является значение true, если оба операнда А и В равны true. Если хотя бы один из операндов равен false, то результатом выражения А&В является значение false |
&& | Оператор "логическое и" (упрощенная форма). Значение выражения вида А&&В равно true, если оба операнда А и B равны true. В противном случае результат выражения равен false. Если при вычислении первого операнда А оказалось, что он равен false, то значение второго операнда В не вычисляется |
| | Оператор "логическое или". Результатом выражения А | В является значение true, если хотя бы один из операндов А или В равен true. Если оба операнда равны false, то результатом выражения А | В является значение false |
|| | Оператор "логическое или" (упрощенная форма). Значение выражения вида А || В равно true, если хотя бы один из операндов А или В равен true. В противном случае результат выражения равен false. Если при вычислении первого операнда А оказалось, что он равен true, то значение второго операнда в не вычисляется |
^ | Оператор "логическое исключающее или". Результатом выражения А^В является значение true, если один из операндов А или В равен true, а другой равен false. Если оба операнда равны false или оба операнда равны true, то результатом выражения А^В является значение false |
! | Оператор "логическое отрицание". Значение выражения !А равно true, если значение операнда А равно false. Если значение операнда А равно true, го значение выражения !А равно false |
Логические операторы позволяют выполнять четыре операции:
Более сложные логические операции выполняются путем комбинированного использования логических операторов. Для выполнения операций "логическое и" и "логическое или" можно использовать две формы операторов (основную и упрощенную).
Правила вычисления результата для операции "логическое и" проиллюстрированы в таблице 2.
A | true | false |
---|---|---|
B | ||
true | true | false |
false | false | false |
Если операнды А и В отождествлять с некоторыми условиями, то "сложное" условие А&В (или А&&В) состоит в том, что истинно и условие А, и условие В. Другими словами, значение выражения А&В (или А&&В) будет равно true, только если равно true значение операнда А и одновременно равно true значение операнда В. Очевидно, что если при проверке значения операнда А окажется, что его значение равно false, то результатом логической операции будет false вне зависимости от того, каково значение операнда В. Этот факт принимается во внимание в работе упрощенной формы оператора &&: если при вычислении значения выражения вида А&&В оказалось, что значение операнда А равно false, то значение операнда В вообще не будет вычисляться. При вычислении значения выражения вида А&В значение операнда В вычисляется вне зависимости от того, какое значение операнда А.
Как вычисляется результат операции "логические или", демонстрирует таблица 3.
A | true | false |
---|---|---|
B | ||
true | true | true |
false | true | false |
"Сложное" условие А|В (или А||В) состоит в том, что истинно хотя бы одно условие, А или В. Значением выражений А|В или А||В является false только в том случае, если оба операнда А и В равны false. Поэтому если при вычислении значения операнда А окажется, что его значение равно true, то в принципе значение второго операнда в можно не вычислять - результат от этого не зависит. Именно по такой схеме "работает" упрощенная форма оператора ||. При использовании оператора | значение второго операнда вычисляется вне зависимости от значения первого операнда.
Для операции "логическое исключающее или" можно дать такую интерпретацию: результат является истинным, если у операндов разные значения. Более детально это показано в таблице 4.
A | true | false |
---|---|---|
B | ||
true | false | true |
false | true | false |
При одинаковых значениях операндов А и B значением выражения А^В является false, а если значения операндов А и В разные, то результатом выражения является значение true.
Оператор ! для выполнения операции "логическое отрицание" - единственный логический унарный оператор. Правила выполнения этой операции иллюстрируются в таблице 4.
А | true | false |
---|---|---|
!А | false | true |
Здесь все просто. Если операнд А истинный (значение true), то результат выражения !А ложный (значение false). Если операнд А ложный (значение false), то результат выражения !А истинный (значение true). И в том и в другом случае значение операнда А остается неизменным - то есть выполнение команды вида !А не меняет значение операнда А.
На следующем шаге мы рассмотрим побитовые операторы и двоичные коды.