- •Лабораторная работа №2. Верификация входных данных. Операции сравнения, логический тип данных, условные и логические выражения.
- •Основные операторы
- •Унарные операторы
- •Операторы равенства
- •Логические, условные операторы и Null-операторы
- •Операторы назначения и анонимные операторы
- •Ассоциативность
- •Добавление скобок
- •Ветвящиеся алгоритмы
- •Ветвление программ
- •Условные переходы
- •Использование составных инструкций сравнения
Лабораторная работа №2. Верификация входных данных. Операции сравнения, логический тип данных, условные и логические выражения.
Операции сравнения
Все операции отношения используются для сравнения значений переменных или выражений. Эти операции вырабатывают значение булевского типа: ИСТИНА (true) или ЛОЖЬ (false). Численных эквивалентов для этих значений в языке C# не существует. Перечень операций приведён в таблице:
При выполнении операций сравнения следует помнить одну специфическую особенность. Точное сравнение вещественных чисел возможно только с нулём!
Сравнение ненулевых вещественных чисел, полученных путём вычислений, возможно только с определённой точностью. Это связано с формой представления вещественных чисел (формат с плавающей запятой). А вот числа формата Decimal можно сравнивать между собой на равно.
Приоритет операций сравнения
В C# оператор — это элемент программы, который применяется к одному или нескольким операндам в выражении или операторе. Операторы, получающие на вход один операнд, например оператор инкремента (++) или new, называются унарными операторами. Операторы, получающие на вход два операнда, например, арифметические операторы (+, -, *, /) называются бинарными. Один оператор — условный оператор (?:) получает на вход три операнда и является единственным троичным оператором в C#.
Следующая строка кода C# содержит один унарный оператор и один операнд. Оператор инкремента ++ изменяет значение операнда y.
y++;
Следующая строка кода C# содержит два бинарных оператора, каждый с двумя операндами. Оператор присвоения = в качестве операндов принимает целочисленную переменную y и выражение 2 + 3. Выражение 2 + 3 само состоит из оператора сложения и два операнда, 2 и 3.
y = 2 + 3;
Операторы, вычисление значения и приоритет операторов
Операнд может быть допустимым выражением любого размера, и он может состоять из любого числа других выражений. В выражении, которое содержит несколько операторов, порядок применения операторов определяется порядком применения операторов, ассоциативностью и скобками.
Каждый оператор имеет определенный приоритет. В выражении, которое содержит несколько операторов с разными уровнями приоритета, порядок применения операторов определяет порядок, в котором вычисляются операторы. Например, следующий оператор присваивает 3 полю n1.
n1 = 11 - 2 * 4;
Умножение выполняется в первую очередь, так как умножение имеет приоритет над вычитанием.
В следующей таблице операторы разделены на категории на основе типа выполняемых операций. Категории указаны в порядке приоритета.
Основные операторы
Выражение |
Описание |
x.y |
Доступ к членам |
f(x) |
Вызов метода и делегата |
a[x] |
Доступ к массиву и индексатору |
x++ |
Постфиксное приращение |
x-- |
Постфиксное уменьшение |
new T(...) |
Создание объекта и делегата |
new T(...){...} |
Создание объекта с инициализатором. См. раздел Инициализаторы объектов и коллекций (Руководство по программированию в C#). |
new {...} |
Анонимный инициализатор объекта. См. раздел Анонимные типы (Руководство по программированию в C#). |
new T[...] |
Создание массива. См. раздел Массивы (Руководство по программированию на C#). |
typeof(T) |
Получение объекта System.Type для T |
checked(x) |
Вычисление выражения в проверенном контексте |
unchecked(x) |
Вычисление выражения в непроверенном контексте |
default (T) |
Получение значения по умолчания для типа T |
delegate {} |
Анонимная функция (анонимный метод) |