C# 4.0: полное руководство | страница 64




Операторы отношения и логические операторы

В обозначениях оператор отношения и логический оператор термин отношения означает взаимосвязь, которая может существовать между двумя значениями, а термин логический — взаимосвязь между логическими значениями "истина>7' и "ложь". И поскольку операторы отношения дают истинные или ложные результаты, то они нередко применяются вместе с логическими операторами. Именно по этой причине они и рассматриваются совместно в данном разделе.

Ниже перечислены операторы отношения.


>Оператор    >Значение


>==          >Равно

>!=          >Не равно

>>           >Больше

><           >Меньше

>>=          >Больше или равно

><=          >Меньше или равно


К числу логических относятся операторы, приведенные ниже.


>Оператор    >Значение


>&           

>|           >ИЛИ

>^           >Исключающее ИЛИ

>&&          >Укороченное И

>||          >Укороченное ИЛИ

>!           >НЕ


Результатом выполнения оператора отношения или логического оператора является логическое значение типа >bool.

В целом, объекты можно сравнивать на равенство или неравенство, используя операторы отношения == и ! =. А операторы сравнения <, >, <= или >= могут применяться только к тем типам данных, которые поддерживают отношение порядка. Следовательно, операторы отношения можно применять ко всем числовым типам данных. Но значения типа >bool могут сравниваться только на равенство или неравенство, поскольку истинные (true) и ложные (false) значения не упорядочиваются. Например, сравнение >true > false в C# не имеет смысла.

Операнды логических операторов должны относиться к типу bool, а результат выполнения логической операции также относится к типу bool. Логические операторы &, |, и ! поддерживают основные логические операции И, ИЛИ, исключающее ИЛИ и НЕ в соответствии с приведенной ниже таблицей истинности.


>p     >q     >p & q  >p | q  >p >^>!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;