Операнды логических операторов должны относиться к типу 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;
> bool b1, b2;
> i = 10;
> j = 11;
> if(i < j) Console.WriteLine("i < j");
> if(i <= j) Console.WriteLine("i <= j");
> if (i != j) Console.WriteLine("i != j");
> if(i == j) Console.WriteLine("Нельзя выполнить");
> if(i >= j) Console.WriteLine("Нельзя выполнить");
> if(i > j) Console.WriteLine("Нельзя выполнить");
> b1 = true;
> b2 = false;
> if(b1 & b2) Console.WriteLine("Нельзя выполнить");
> if(!(b1 & b2)) Console.WriteLine("!(b1 & b2) — true");
> if(b1 | b2) Console.WriteLine("bl I b2 - true");
> if(b1 >^ b2) Console.WriteLine("bl >^ b2 — true");
> }
>}
Выполнение этой программы дает следующий результат.
>i < j
>i <= j
>i != j
>!(b1 & b2) — true
>b1 | b2 — true
>b1 >A b2 - true
Логические операторы в C# выполняют наиболее распространенные логические операции. Тем не менее существует ряд операций, выполняемых по правилам формальной логики. Эти логические операции могут быть построены с помощью логических операторов, поддерживаемых в С#. Следовательно, в С# предусмотрен такой набор логических операторов, которого достаточно для построения практически любой логической операции, в том числе импликации. Импликация — это двоичная операция, результатом которой является ложное значение только в том случае, если левый ее операнд имеет истинное значение, а правый — ложное. (Операция импликации отражает следующий принцип: истина не может подразумевать ложь.) Ниже приведена таблица истинности для операции импликации.
>p
>q
>Результат импликации p и q
>true
>true
>true
>true
>false
>false
>false
>false
>true
>false
>true
>true
Операция импликации может быть построена на основе комбинации логических операторов ! и |, как в приведенной ниже строке кода.
>! р I q
В следующем примере программы демонстрируется подобная реализация операции импликации.
>// Построение операции импликации в С#.
>using System;
>class Implication {
> static void Main() {
> bool p=false, q=false;
> int i, j;
> for(i =0; i < 2; i++) {
> for(j = 0; j < 2; j++) {
> if(i==0) p = true;
> if(i==1) p = false;
> if(j==0) q = true;