Foreversoft.ru

IT Справочник
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Знак в си шарп

Операторы отношения и логические операторы

C# — Руководство по C# — Операторы отношения и логические операторы

В обозначениях оператор отношения и логический оператор термин отношения означает взаимосвязь, которая может существовать между двумя значениями, а термин логический — взаимосвязь между логическими значениями «истина» и «ложь». И поскольку операторы отношения дают истинные или ложные результаты, то они нередко применяются вместе с логическими операторами. Именно по этой причине они и рассматриваются совместно.

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

Операторы отношения C#

ОператорЗначение
==Равно
!=Не равно
>Больше
=Больше или равно
Логические операторы C#

ОператорЗначение
&И
|ИЛИ
^Исключающее ИЛИ
&&Укороченное И
||Укороченное ИЛИ
!НЕ

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

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

Рассмотрим пример программы, демонстрирующий применение операторов отношения и логических операторов:

Логические операторы в C# выполняют наиболее распространенные логические операции. Тем не менее существует ряд операций, выполняемых по правилам формальной логики. Эти логические операции могут быть построены с помощью логических операторов, поддерживаемых в C#. Следовательно, в C# предусмотрен такой набор логических операторов, которого достаточно для построения практически любой логической операции, в том числе импликации. — это двоичная операция, результатом которой является ложное значение только в том случае, если левый ее операнд имеет истинное значение, а правый — ложное. (Операция импликации отражает следующий принцип: истина не может подразумевать ложь .)

Операция импликации может быть построена на основе комбинации логических операторов ! и |:

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

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

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

Укороченные логические операторы иногда оказываются более эффективными, чем их обычные аналоги. Так зачем же нужны обычные логические операторы И и ИЛИ? Дело в том, что в некоторых случаях требуется вычислять оба операнда логической операции И либо ИЛИ из-за возникающих побочных эффектов. Пример:

Стоит отметить, что при возникновении исключительной ситуации во время отладки кода, Visual Studio 2010 выводит сообщение следующего характера:

Язык программирования C#

Язык С#. Символы и строки

В C# существуют два вида строковых констант (литерал):

  • обычные константы — строка символов, заключенная в кавычки string str= “d:\СП21\С#”;
  • @-константа — константа c предшествующим знаком @ string str= @ “d:СП21С#”;

В @-константах все символы трактуются в соответствии с их изображением, поэтому путь к файлу лучше задавать @-константой.

Класс Char

Char – символы в кодировке Unicode — хранятся в двух байтах

Методы класса Char

GetNumericValue

Возвращает числовое значение символа, если он является цифрой, и -1 в противном случае.

GetUnicodeCategory

Возвращает категорию Unicode-символа. В Unicode символы разделены на категории, например цифры (DecimalDigitNumber), римские цифры (LetterNumber), разделители строк (LineSeparator), буквы в нижнем регистре (LowercaseLetter) и т.д.

IsControl

Возвращает true, если символ является управляющим.

IsDigit

Возвращает true, если символ является десятичной цифрой.

IsLetter

Возвращает true, если символ является буквой.

IsLetterOrDigit

Возвращает true, если символ является буквой или десятичной цифрой.

IsLower

Возвращает true, если символ задан в нижнем регистре.

IsNumber

Возвращает true, если символ является числом (десятичным или шестнадцатеричным).

IsPunctuation

Возвращает true, если символ является знаком препинания.

IsSeparator

Возвращает true, если символ является разделителем.

IsUpper

Возвращает true, если символ задан в верхнем регистре.

IsWhiteSpace

Возвращает true, если символ является пробельным (пробел, перевод строки, возврат каретки).

Parse

Преобразует строку в символ (строка должна состоять из одного символа).

ToLower

Преобразует символ в нижний регистр

ToUpper

Преобразует символ в верхний регистр

Массив символов char []

В языке C# массив char [] — обычный массив:

  • не имеет завершающего нуля,
  • его нельзя инициализировать строкой символов

Преобразование строки в массив символов:

string hello = «Hello, World!»;

char[ ] str = hello.ToCharArray();

Класс String

  1. В классе String невозможно изменить содержимое строки или ее длину.
  2. При каждом изменении строки создается новый объект, а прежний превращается в мусор.
  3. Для работы со строками изменяемой длины и содержания используется класс StringBuilder

string str;

string world = «Мир«;

string str1 = new string(‘ ‘, 20);

Преобразование массива символов в строку:

char[ ] mch = < 'М', 'а', 'й', 'к', 'о', 'п' >;

string str2 = new string(mch);

Для строк определены следующие операции:

• присваивание (=);

• проверка на равенство (==);

• проверка на неравенство ( ! = ) ;

• обращение по индексу ( [ ] ) ;

• сцепление (конкатенация) строк ( + ) .

Несмотря на то, что строки являются ссылочным типом данных, на равенство и неравенство проверяются не ссылки, а значения строк! Строки равны, если имеют одинаковое количество символов и совпадают посимвольно.

Методы класса String

Length

определяет длину строки

Split

Разделяет строку на элементы. Результаты помещаются в массив строк.

Equals

Возвращает true, если объекты имеют одну и ту же длину и состоят из одних и тех же символов

Compare

Сравнение двух строк в алфавитном порядке. Возвращает число: 0 – строки равны, больше 0 strA > strB и меньше 0 strA

EndsWith

Определяет, совпадает ли конец данного экземпляра строки с указанной строкой.

Contains

Возвращает значение, указывающее, равен ли данный экземпляр заданному объекту или значению типа String .

Replace

Возвращает новую строку, в которой все вхождения заданной строки заменены другой заданной строкой.

Возвращает копию этой строки, переведенную в верхний регистр

Удаляет все начальные и конечные знаки пробела из текущего объекта String .

Сцепляет два указанных экземпляра String .

Пример. Имеется строка символов.

str = «В ногах нет правды. На вкус и цвет товарища нет. На нет и суда нет.» +

«Нет дыму без огня. Нет худа без добра. Там хорошо, где нас нет.»;

  1. Общее кол-во символов
  2. Количество предложений
  3. Количество слов
  4. Подсчитать количество слов «нет»
  5. Вывести все слова закаливающиеся символом «а»
  6. Проверить, имеется ли слово «дым» в тексте
  7. Выполнить замену в тексте слова “нет” на «не всегда нет»

C# — Операторы

Оператор — это символ, который сообщает компилятору выполнить определенные математические или логические манипуляции. C # имеет богатый набор встроенных операторов и предоставляет следующие типы операторов:

  • Арифметические операторы
  • Реляционные операторы
  • Логические операторы
  • Побитовые операторы
  • Операторы присваивания
  • Другие операторы

В этом учебном пособии поочередно описываются арифметические, реляционные, логические, побитовые, присваивающие и другие операторы.

Арифметические операторы

В следующей таблице показаны все арифметические операторы, поддерживаемые C #. Предположим, что переменная A содержит 10, а переменная B имеет 20, тогда —

ОператорОписаниеПример
+Добавляет два операндаA + B = 30
Вычитает второй операнд с первогоA — B = -10
*Умножает оба операндаA * B = 200
/Делит числитель на де-числительB / A = 2
%Оператор модуля и остаток после целочисленного деленияB% A = 0
++Оператор приращения увеличивает целочисленное значение на единицуA ++ = 11
Оператор Decrement уменьшает целочисленное значение на единицуA— = 9

Реляционные операторы

В следующей таблице показаны все реляционные операторы, поддерживаемые C #. Предположим, что переменная A имеет место 10, а переменная B имеет 20, тогда —

ОператорОписаниеПример
==Проверяет, равны ли значения двух операндов или нет, если да, то условие становится истинным.(A == B) не соответствует действительности.
знак равноПроверяет, равны ли значения двух операндов или нет, если значения не равны, условие становится истинным.(A! = B) истинно.
>Проверяет, превышает ли значение левого операнда значение правого операнда, если да, тогда условие становится истинным.(A> B) неверно.
=Проверяет, превышает ли значение левого операнда значение правого операнда, если да, тогда условие становится истинным.(A> = B) неверно.
>Двоичный оператор правого сдвига.Значение левых операндов перемещается вправо на количество бит, заданных правым операндом.A >> 2 = 15, что составляет 0000 1111

Операторы присваивания

Существуют следующие операторы присваивания, поддерживаемые C # —

ОператорОписаниеПример
знак равноПростой оператор присваивания, присваивает значения из правых операндов в левый операндC = A + B присваивает значение A + B в C
+ =Добавить AND присваивания, Он добавляет правый операнд в левый операнд и присваивает результат левому операндуC + = A эквивалентно C = C + A
знак равноВычитание и оператор присваивания, он вычитает правый операнд из левого операнда и присваивает результат левому операндуC — = A эквивалентно C = C — A
знак равноОператор умножения и присваивания, Он умножает правый операнд на левый операнд и присваивает результат левому операндуC * = A эквивалентно C = C * A
знак равноОператор Divide AND assign. Он делит левый операнд на правый операнд и присваивает результат левому операндуC / = A эквивалентно C = C / A
знак равноМодуль и оператор присваивания, он принимает модуль с использованием двух операндов и присваивает результат левому операндуC% = A эквивалентно C = C% A
> =Оператор правой смещения и назначенияC >> = 2 совпадает с C = C >> 2
знак равноОператор побитового И присваиванияC & = 2 является таким же, как C = C & 2
^ =побитовое исключающее ИЛИ и оператор присваиванияC ^ = 2 является таким же, как C = C ^ 2
| =побитовое включение OR и оператор присваиванияC | = 2 совпадает с C = C | 2

Есть несколько других важных операторов, включая sizeof, typeof и ? :поддерживается C #.

ОператорОписаниеПример
размер()Возвращает размер типа данных.sizeof (int), возвращает 4.
тип()Возвращает тип класса.TypeOf (StreamReader);
&Возвращает адрес переменной.& А; возвращает фактический адрес переменной.
*Указатель на переменную.* А; создает указатель с именем ‘a’ для переменной.
? :Условное выражениеЕсли условие верно? Тогда значение X: В противном случае значение Y
являетсяОпределяет, имеет ли объект определенный тип.Если (Ford — Car) // проверяет, является ли Ford объектом класса Car.
в видеПередача без создания исключения, если сбой выполняется.Object obj = new StringReader («Hello»);

StringReader r = obj как StringReader;

Приоритет оператора в C #

Приоритет оператора определяет группировку терминов в выражении. Это влияет на оценку выражения. Некоторые операторы имеют более высокий приоритет, чем другие; например, оператор умножения имеет более высокий приоритет, чем оператор сложения.

Например, x = 7 + 3 * 2; здесь x назначается 13, а не 20, потому что оператор * имеет более высокий приоритет, чем +, поэтому первая оценка выполняется для 3 * 2, а затем 7 добавляется в нее.

Здесь операторы с наивысшим приоритетом появляются в верхней части таблицы, а нижние — внизу. Внутри выражения сначала оцениваются операторы с более высоким приоритетом.

Знак в си шарп

Отдельный набор операций представляет условные выражения. Такие операции возвращают логическое значение, то есть значение типа bool : true , если выражение истинно, и false , если выражение ложно. К подобным операциям относятся операции сравнения и логические операции.

Операции сравнения

В операциях сравнения сравниваются два операнда и возвращается значение типа bool — true , если выражение верно, и false , если выражение неверно.

Сравнивает два операнда на равенство. Если они равны, то операция возвращает true , если не равны, то возвращается false :

Сравнивает два операнда и возвращает true, если операнды не равны, и false, если они равны.

Операция «меньше чем». Возвращает true, если первый операнд меньше второго, и false, если первый операнд больше второго:

Операция «больше чем». Сравнивает два операнда и возвращает true, если первый операнд больше второго, иначе возвращает false:

Операция «меньше или равно». Сравнивает два операнда и возвращает true, если первый операнд меньше или равен второму. Иначе возвращает false.

Операция «больше или равно». Сравнивает два операнда и возвращает true, если первый операнд больше или равен второму, иначе возвращается false:

Операции = имеют больший приоритет, чем == и !=.

Логические операции

Также в C# определены логические операторы, которые также возвращают значение типа bool . В качестве операндов они принимают значения типа bool . Как правило, применяются к отношениям и объединяют несколько операций сравнения.

Операция логического сложения или логическое ИЛИ. Возвращает true, если хотя бы один из операндов возвращает true.

Операция логического умножения или логическое И. Возвращает true, если оба операнда одновременно равны true.

Операция логического сложения. Возвращает true, если хотя бы один из операндов возвращает true.

Операция логического умножения. Возвращает true, если оба операнда одновременно равны true.

Операция логического отрицания. Производится над одним операндом и возвращает true, если операнд равен false. Если операнд равен true, то операция возвращает false:

Операция исключающего ИЛИ. Возвращает true, если либо первый, либо второй операнд (но не одновременно) равны true, иначе возвращает false

Здесь у нас две пары операций | и || (а также & и && ) выполняют похожие действия, однако же они не равнозначны.

В выражении z=x|y; будут вычисляться оба значения — x и y.

В выражении же z=x||y; сначала будет вычисляться значение x, и если оно равно true , то вычисление значения y уже смысла не имеет, так как у нас в любом случае уже z будет равно true . Значение y будет вычисляться только в том случае, если x равно false

То же самое касается пары операций &/&& . В выражении z=x&y; будут вычисляться оба значения — x и y.

В выражении же z=x&&y; сначала будет вычисляться значение x, и если оно равно false , то вычисление значения y уже смысла не имеет, так как у нас в любом случае уже z будет равно false . Значение y будет вычисляться только в том случае, если x равно true

Поэтому операции || и && более удобны в вычислениях, так как позволяют сократить время на вычисление значения выражения, и тем самым повышают производительность. А операции | и & больше подходят для выполнения поразрядных операций над числами.

Читать еще:  Округление в си шарп
Ссылка на основную публикацию
Adblock
detector