Тернарный оператор ?: в C#

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

Тернарный оператор — аналог условной конструкции if...else. Если вы еще не знакомы с оператором условия if, советуем сначала познакомиться с ним.

Почему тернарный

В C# существует три вида операторов:

1. Унарные операторы работают с одним операндом. Например, оператор - — унарный: из значения 7 он может сделать значение -7
2. Бинарные операторы работают с двумя операторами. Например, оператор сложения + может сложить два числа: 2 + 5.
3. Тернарные операторы работают с тремя операторами. 

Синтаксис

Условие ? Выражение1 : Выражение2;

Как работает

  • Если Условие = true, оператор возвращает Выражение1.

  • Если Условие = false, оператор возвращает Выражение2.

С помощью тернарного оператора можно укоротить этот код:

if (number % 2 == 0)
{
    isEven = true;
}
else
{
    isEven = false;
}

На языке тернарного оператора он будет выглядеть так:

isEven = (number % 2 == 0) ? true : false;

Пример. Определяем, является ли число четным 

using System;

namespace Conditional
{
    class Ternary
        {
public static void Main(string[] args)
    {
int number = 2;
bool isEven;
isEven = (number % 2 == 0) ? true : false ;  
Console.WriteLine(isEven);
    }
        }
}

Вывод:

true

Что здесь происходит

1. Сначала мы присваиваем переменной number значение 2.
2. Затем мы с помощью тернарного оператора проверяем, является ли число четным — это Условие.
3. Число 2 — четное, поэтому условие (number % 2 == 0) вернет true — это Выражение1.
4. Результат записывается в переменную isEven.

Примечание. Тернарный оператор также может возвращать числа, строки символы.

Совет. Вместо того чтобы хранить возвращаемые значения в переменной isEven, можно сразу выводить их на экран. Так эффективнее. Например:

Console.WriteLine((number % 2 == 0) ? true : false);

Когда лучше использовать

Тернарный оператор позволяет заменить несколько строк кода всего лишь одной. Но злоупотреблять им не стоит.

Например, мы можем заменить условную конструкцию if..else if:

if (a > b)
{
    result = "a больше, чем b";
}
else if (a < b)
{
    result = "b больше, чем a";
}
else
{
    result = "a равно b";
}

всего одной строкой:

result = a > b ? "a больше, чем b" : a < b ? "b больше, чем a" : "a равно b";

Тернарный оператор уменьшает длину кода, но ухудшает понимание логики программы.

Поэтому тернарный оператор лучше использовать только для замены простых конструкций if...else.

codechick

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

2024 ©