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

В этой статье вы узнаете, какие типы операторов есть в C# и как их использовать.

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

Например, в выражении 2 + 3, + — это оператор, который используется для выполнения операции сложения, а 2 и 3 — операнды.

Операторы используются для управления переменными и их значениями в программе. C# поддерживает ряд операторов, разделенных по типам выполняемых ими операций.

Простой оператор присваивания

Основной оператор присваивания = используется для присвоения значений переменным.

double x;
x = 50.05;

Здесь переменной x присваивается значение 50.05.

Пример 1. Используем простой оператор присваивания

using System;

namespace Operator
{
    class AssignmentOperator
    {
        public static void Main(string[] args)
        {
            int firstNumber, secondNumber;
            // Присваиваем переменной значение константы
            firstNumber = 10;
            Console.WriteLine("Значение firstNumber = {0}", firstNumber);

            // Присваиваем переменной значение другой переменной
            secondNumber = firstNumber;
            Console.WriteLine("Значение secondNumber = {0}", secondNumber);
        }
    }
}

Вывод:

Значение firstNumber = 10
Значение secondNumber = 10

Вы могли заметить в примере фигурные скобки {}. Такой метод называется форматированием строк, о нем мы поговорим в другой статье. Сейчас вам достаточно знать, что {0} заменяется на firstNumber, следующей за строкой, а {1} заменяется на secondNumber.

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

Арифметические операторы используются для выполнения арифметических операций: сложение, вычитание, умножение, деление и т. д. 

int x = 5;
int y = 10;
int z = x + y; // z = 15

Оператор

Название оператора

Пример

+

Оператор сложения.

6 + 3 → 9

-

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

10 - 6 → 4

*

Оператор умножения.

4 * 2 → 8

/

Оператор деления.

10 / 5 → 2

%

Оператор взятия остатка.

16 % 3 → 1

Пример 2. Используем арифметические операторы

using System;
 
namespace Operator
{
    class ArithmeticOperator
    {
        public static void Main(string[] args)
        {
            double firstNumber = 14.40, secondNumber = 4.60, result;
            int num1 = 26, num2 = 4, rem;

            // Оператор сложения
            result = firstNumber + secondNumber;
            Console.WriteLine("{0} + {1} = {2}", firstNumber, secondNumber, result);

            // Оператор вычитания
            result = firstNumber - secondNumber;
            Console.WriteLine("{0} - {1} = {2}", firstNumber, secondNumber, result)

            // Оператор умножения
            result = firstNumber * secondNumber;
            Console.WriteLine("{0} * {1} = {2}", firstNumber, secondNumber, result);

            // Оператор деления
            result = firstNumber / secondNumber;
            Console.WriteLine("{0} / {1} = {2}", firstNumber, secondNumber, result);

            // Оператор взятия остатка
            rem = num1 % num2;
            Console.WriteLine("{0} % {1} = {2}", num1, num2, rem);
        }
    }
}

Вывод:

14.4 + 4.6 = 19
14.4 - 4.6 = 9.8
14.4 * 4.6 = 66.24
14.4 / 4.6 = 3.1304347826087
26 % 4 = 2

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

Операторы сравнения (они же — операторы отношения) используются для проверки связи между двумя операндами. Если сравнение истинно, результат будет true, иначе — false. Операторы отношения обычно используются в условиях и циклах.

Оператор

Название оператора

Пример

==

Равно.

6 == 4 → false

>

Больше.

3 > -1 → true

<

Меньше.

5 < 3 → false

>=

Больше или равно.

4 >= 4 → true

<=

Меньше или равно.

5 <= 3 → false

!=

Не равно.

10 != 2 → true

Пример 3. Используем операторы сравнения

using System;

namespace Operator
{
class RelationalOperator
{
    public static void Main(string[] args)
    {
        bool result;
        int firstNumber = 10, secondNumber = 20;

        result = (firstNumber==secondNumber);
        Console.WriteLine("{0} == {1} возвращает {2}",firstNumber, secondNumber, result);

        result = (firstNumber > secondNumber);
        Console.WriteLine("{0} > {1} возвращает {2}",firstNumber, secondNumber, result);

        result = (firstNumber < secondNumber);
        Console.WriteLine("{0} < {1} возвращает {2}",firstNumber, secondNumber, result);

        result = (firstNumber >= secondNumber);
        Console.WriteLine("{0} >= {1} возвращает {2}",firstNumber, secondNumber, result);

        result = (firstNumber <= secondNumber);
        Console.WriteLine("{0} <= {1} возвращает {2}",firstNumber, secondNumber, result);

        result = (firstNumber != secondNumber);
        Console.WriteLine("{0} != {1} возвращает {2}",firstNumber, secondNumber, result);
    }
}
}

Вывод:

10 == 20 возвращает False
10 > 20 возвращает False
10 < 20 возвращает True
10 >= 20 возвращает False
10 <= 20 возвращает True
10 != 20 возвращает True

Логические операторы

Логические операторы используются для выполнения таких логических операций, как AND (ИЛИ), OR (И) и т. д. Логические операторы работают с булевыми выражениями и возвращают булевые значения true и false. Логические операторы нужны для принятия решений и в циклах.

Операнд 1

Операнд 2

OR (||)

AND (&&)

true

true

true

true

true

false

true

false

false

true

true

false

false

false

false

false

Проще говоря:

  • Если один из операндов true, то OR вернет true.
  • Если один из операндов равен false, оператор AND вернет false.

Пример 4. Используем логические операторы

using System;
 
namespace Operator
{
    class LogicalOperator
    {
        public static void Main(string[] args)
        {
            bool result;
            int firstNumber = 10, secondNumber = 20;

            // оператор ИЛИ
            result = (firstNumber == secondNumber) || (firstNumber > 5);
            Console.WriteLine(result);

            // оператор И
            result = (firstNumber == secondNumber) && (firstNumber > 5);
            Console.WriteLine(result);
        }
    }
}

Вывод:

True
False

Унарные операторы

Унарные операторы работают только с одним операндом — это отличает их от всех остальных операторов.

Оператор

Название оператора

Описание

+

Унарный плюс.

Оставляет знак операнда таким же.

-

Унарный минус.

Меняет знак операнда.

++

Инкремент.

Увеличивает значение операнда на 1.

--

Декремент.

Уменьшает значение операнда на 1.

!

Логическое отрицание.

Инвертирует логическое значение операнда.

Пример 5. Используем унарные операторы

using System;
 
namespace Operator
{
    class UnaryOperator
    {
        public static void Main(string[] args)
        {
            int number = 10, result;
            bool flag = true;

            result = +number;
            Console.WriteLine("+number = " + result);

            result = -number;
            Console.WriteLine("-number = " + result);

            result = ++number;
            Console.WriteLine("++number = " + result);

            result = --number;
            Console.WriteLine("--number = " + result);

            Console.WriteLine("!flag = " + (!flag));
        }
    }
}

Вывод:

+number = 10
-number = -10
++number = 11
--number = 10
!flag = False

Операторы инкремента ++ и декремента -- могут использоваться как префикс и постфикс. Если использовать их как префикс, изменение значения переменной отображается в той же строке, а если как постфикс, изменение значения переменной отображается в следующей строке. 

Пример 6. Используем инкремент в качестве префикса и постфикса

using System;
 
namespace Operator
{
    class UnaryOperator
    {
        public static void Main(string[] args)
        {
            int number = 10;

            Console.WriteLine((number++));
            Console.WriteLine((number));

            Console.WriteLine((++number));
            Console.WriteLine((number));
        }
    }
}

Вывод:

10
11
12
12

Когда ++ используется после операнда, значение сначала оценивается, а затем увеличивается на 1. Следовательно, оператор Console.WriteLine((number++)); выводит 10 вместо 11. После того, как значение выведено, оно увеличивается на 1.

Если ++ используется в качестве префикса, процесс обратный. Значение сначала увеличивается, а затем выводится. Следовательно, выражение Console.WriteLine((++number)); выводит 12.

То же самое и с оператором декремента --.

Тернарный оператор

Тернарный оператор ? : работает с тремя операндами. Это сокращение для конструкции if-then-else. Тернарный оператор можно использовать следующим образом:

переменная = условие? выражение1: выражение2;

Тернарный оператор работает вот так: 

  • Если выражение, указанное в условии равно true, переменной присваивается результат выражения1.
  • Если же выражение равно false, переменной присваивается результат выражения2.

Пример 7. Используем тернарный оператор 

using System;
 
namespace Operator
{
    class TernaryOperator
    {
        public static void Main(string[] args)
        {
            int number = 10;
            string result;

            result = (number % 2 == 0)? "четное число" : "нечетное число";
            Console.WriteLine("{0} это {1}", number, result);
        }
    }
}

Вывод:

10 это четное число

Побитовые операторы

Побитовые операторы и операторы побитового сдвига используются для выполнения манипуляций с битами.

Оператор Название оператора
~ Побитовое отрицание.
& Побитовое И.
| Побитовое ИЛИ.
^ Побитовое исключающее ИЛИ.
<< Побитовый сдвиг влево.
>> Побитовый сдвиг вправо.

Пример 8. Используем побитовый оператор и оператор побитового сдвига

using System;
 
namespace Operator
{
    class BitOperator
    {
        public static void Main(string[] args)
        {
            int firstNumber = 10;
            int secondNumber = 20;
            int result;

            result = ~firstNumber;
            Console.WriteLine("~{0} = {1}", firstNumber, result);

            result = firstNumber & secondNumber;
            Console.WriteLine("{0} & {1} = {2}", firstNumber,secondNumber, result);

            result = firstNumber | secondNumber;
            Console.WriteLine("{0} | {1} = {2}", firstNumber,secondNumber, result);

            result = firstNumber ^ secondNumber;
            Console.WriteLine("{0} ^ {1} = {2}", firstNumber,secondNumber, result);

            result = firstNumber << 2;
            Console.WriteLine("{0} << 2 = {1}", firstNumber, result);

            result = firstNumber >> 2;
            Console.WriteLine("{0} >> 2 = {1}", firstNumber, result);
        }
    }
}

Вывод:

~10 = -11
10 & 20 = 0
10 | 20 = 30
10 ^ 20 = 30
10 << 2 = 40
10 >> 2 = 2

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

Оператор

Название оператора

Пример

Эквивалентно

+=

Оператор сложения и присваивания.

x += 5

x = x + 5

-=

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

x -= 5

x = x - 5

*=

Оператор умножения и присваивания.

x *= 5

x = x * 5

/=

Оператор деления и присваивания.

x /= 5

x = x / 5

%=

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

x %= 5

x = x % 5

&=

Оператор побитового И и присваивания.

x &= 5

x = x & 5

|=

Оператор побитового ИЛИ и присваивания.

x |= 5

x = x | 5

^=

Оператор исключающего ИЛИ и присваивания.

x ^= 5

x = x ^ 5

<<=

Оператор побитового сдвига влево и присваивания.

x <<= 5

x = x << 5

>>=

Оператор побитового сдвига вправо и присваивания.

x >>= 5

x = x >> 5

=>

Лямбда-оператор.

x => x*x

Возвращает x * x

Пример 9. Используем составные операторы присваивания

using System;
 
namespace Operator
{
    class BitOperator
    {
        public static void Main(string[] args)
        {
            int number = 10;

            number += 5;
            Console.WriteLine(number);

            number -= 3;
            Console.WriteLine(number);

            number *= 2;
            Console.WriteLine(number);

            number /= 3;
            Console.WriteLine(number);

            number %= 3;
            Console.WriteLine(number);

            number &= 10;
            Console.WriteLine(number);

            number |= 14;
            Console.WriteLine(number);

            number ^= 12;
            Console.WriteLine(number);

            number <<= 2;
            Console.WriteLine(number);

            number >>= 3;
            Console.WriteLine(number);
        }
    }
}

Вывод:

15
12
24
8
2
2
14
2
8
1
codechick

СodeСhick.io - простой и эффективный способ изучения программирования.

2024 ©