books-read.com
books-read.com » Компьютеры и Интернет » Программирование » Герберт Шилдт - C# 4.0: полное руководство

Герберт Шилдт - C# 4.0: полное руководство

Наш ресурс дает возможность бесплатно читать книгу онлайн Герберт Шилдт - C# 4.0: полное руководство. Жанр: Программирование издательство -, год -. Сайт books-read.com дает возможность читать полную версию книги без регистрации и sms. Все книги онлайн, не надо качать fb2, epub, txt.
Добавить книгу Герберт Шилдт - C# 4.0: полное руководство в приложение ЧИТАТЬ КНИГУ ОФЛАЙН в приложении ios/android
Перейти на страницу:

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


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


==          Равно

!=          Не равно

>           Больше

<           Меньше

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

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


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


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


&           И

|           ИЛИ

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

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

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

!           НЕ


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

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

Операнды логических операторов должны относиться к типу 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) = 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;

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

Герберт Шилдт читать все книги автора по порядку

Герберт Шилдт - на сайте онлайн книг books-read.com Вы можете читать полные версии книг автора в одном месте.


C# 4.0: полное руководство отзывы

Отзывы читателей о книге C# 4.0: полное руководство, автор: Герберт Шилдт. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор books-read.com


Прокомментировать
Подтвердите что вы не робот:*