C# 4.0: полное руководство | страница 65
>
> 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;
> if(j==1) q = false;
> Console.WriteLine("p равно " + p + ", q равно " + q);
> if ( !p | q)
> Console.WriteLine("Результат импликации " + p +
> " и " + q + " равен " + true);
> Console.WriteLine();
> }
> }
> }
>}
Результат выполнения этой программы выглядит так.
>p равно True, q равно True
>Результат импликации True и True равен True