Читаем C# 4.0: полное руководство полностью

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) = 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


p равно True, q равно False


p равно False, q равно True

Результат импликации False и True равен True


p равно False, q равно False

Результат импликации False и False равен True


Укороченные логические операторы

В C# предусмотрены также специальные, укороченные, варианты логических операторов И и ИЛИ, предназначенные для получения более эффективного кода. Поясним это на следующих примерах логических операций. Если первый операнд логической операции И имеет ложное значение (false), то ее результат будет иметь ложное значение независимо от значения второго операнда. Если же первый операнд логической операции ИЛИ имеет истинное значение (true), то ее результат будет иметь истинное значение независимо от значения второго операнда. Благодаря тому что значение второго операнда в этих операциях вычислять не нужно, экономится время и повышается эффективность кода.

Укороченная логическая операция И выполняется с помощью оператора &&, а укороченная логическая операция ИЛИ — с помощью оператора | |. Этим укороченным логическим операторам соответствуют обычные логические операторы & и |. Единственное отличие укороченного логического оператора от обычного заключается в том, что второй его операнд вычисляется только по мере необходимости. -

В приведенном ниже примере программы демонстрируется применение укороченного логического оператора И. В этой программе с помощью операции деления по модулю определяется следующее: делится ли значение переменной d на значение переменной п нацело. Если остаток от деления n/d равен нулю, то п делится на d нацело.

Но поскольку данная операция подразумевает деление, то для проверки условия деления на нуль служит укороченный логический оператор И.



// Продемонстрировать применение укороченных логических операторов.

using System;

class SCops {

  static void Main() {

    int n, d;

    n = 10;

    d = 2;


    if(d != 0 && (n % d) == 0)

      Console.WriteLine(n + " делится нацело на " + d);


    d = 0; // задать нулевое значение переменной d


    // d равно нулю, поэтому второй операнд не вычисляется

    if(d != 0 && (n % d) == 0)

      Console.WriteLine(n + " делится нацело на " + d);


    // Если теперь попытаться сделать то же самое без укороченного

    // логического оператора, то возникнет ошибка из-за деления на нуль,

    if(d != 0 & (n % d) == 0)

      Console.WriteLine(n + " делится нацело на " + d);

  }

}


Перейти на страницу:

Похожие книги

1001 совет по обустройству компьютера
1001 совет по обустройству компьютера

В книге собраны и обобщены советы по решению различных проблем, которые рано или поздно возникают при эксплуатации как экономичных нетбуков, так и современных настольных моделей. Все приведенные рецепты опробованы на практике и разбиты по темам: аппаратные средства персональных компьютеров, компьютерные сети и подключение к Интернету, установка, настройка и ремонт ОС Windows, работа в Интернете, защита от вирусов. Рассмотрены не только готовые решения внезапно возникающих проблем, но и ответы на многие вопросы, которые возникают еще до покупки компьютера. Приведен необходимый минимум технических сведений, позволяющий принять осознанное решение.Компакт-диск прилагается только к печатному изданию книги.

Юрий Всеволодович Ревич

Программирование, программы, базы данных / Интернет / Компьютерное «железо» / ОС и Сети / Программное обеспечение / Книги по IT
Разработка приложений в среде Linux. Второе издание
Разработка приложений в среде Linux. Второе издание

Книга известных профессионалов в области разработки коммерческих приложений в Linux представляет СЃРѕР±РѕР№ отличный справочник для широкого круга программистов в Linux, а также тех разработчиков на языке С, которые перешли в среду Linux из РґСЂСѓРіРёС… операционных систем. РџРѕРґСЂРѕР±но рассматриваются концепции, лежащие в основе процесса создания системных приложений, а также разнообразные доступные инструменты и библиотеки. Среди рассматриваемых в книге вопросов можно выделить анализ особенностей применения лицензий GNU, использование СЃРІРѕР±одно распространяемых компиляторов и библиотек, системное программирование для Linux, а также написание и отладка собственных переносимых библиотек. Р

Майкл К. Джонсон , Эрик В. Троан

Программирование, программы, базы данных