C# 4.0: полное руководство | страница 64
Операторы отношения и логические операторы
В обозначениях оператор отношения и логический оператор термин отношения означает взаимосвязь, которая может существовать между двумя значениями, а термин логический — взаимосвязь между логическими значениями "истина>7' и "ложь". И поскольку операторы отношения дают истинные или ложные результаты, то они нередко применяются вместе с логическими операторами. Именно по этой причине они и рассматриваются совместно в данном разделе.
Ниже перечислены операторы отношения.
>Оператор
>Значение
>==
>Равно
>!=
>Не равно
>>
>Больше
><
>Меньше
>>=
>Больше или равно
><=
>Меньше или равно
К числу логических относятся операторы, приведенные ниже.
>Оператор
>Значение
>&
>И
>|
>ИЛИ
>^
>Исключающее ИЛИ
>&&
>Укороченное И
>||
>Укороченное ИЛИ
>!
>НЕ
Результатом выполнения оператора отношения или логического оператора является логическое значение типа >bool.
В целом, объекты можно сравнивать на равенство или неравенство, используя операторы отношения == и ! =. А операторы сравнения <, >, <= или >= могут применяться только к тем типам данных, которые поддерживают отношение порядка. Следовательно, операторы отношения можно применять ко всем числовым типам данных. Но значения типа >bool
могут сравниваться только на равенство или неравенство, поскольку истинные (true) и ложные (false) значения не упорядочиваются. Например, сравнение >true > false
в C# не имеет смысла.
Операнды логических операторов должны относиться к типу bool, а результат выполнения логической операции также относится к типу bool. Логические операторы &, |, >л и ! поддерживают основные логические операции И, ИЛИ, исключающее ИЛИ и НЕ в соответствии с приведенной ниже таблицей истинности.
>p
>q
>p & q
>p | q
>p >^ q
>!p
>false
>false
>false
>false
>false
>true
>true
>false
>false
>true
>true
>false
>false
>true
>false
>true
>true
>true
>true
>true
>true
>true
>false
>false
Как следует из приведенной выше таблицы, результатом выполнения логической операции исключающее ИЛИ будет истинное значение (true), если один и только один ее операнд имеет значение true.
Ниже приведен пример программы, демонстрирующий применение нескольких операторов отношения и логических операторов.
>// Продемонстрировать применение операторов
>// отношения и логических операторов.
>using System;
>class RelLogOps {
> static void Main() {
> int i, j;