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