Skip to main content

Ternary Operator in C# Explained

Ternary Operator in C#

C# includes a special type of decision making operator '?:' called the ternary operator.

Ternary operator is a Conditional operator in C#. It takes three arguments and evaluates a Boolean expression. In another way, is a decision-making operator and it is a substitute of if…else statement 

 

By using Ternary Operator, we can replace multiple lines of if…else statement code into a single line in C#.

 

The Ternary operator will help you to execute the statements based on the defined conditions using the decision-making operator (?:).

 

Syntax of Ternary Operator in C#

 

The Ternary Operator will always work with 3 operands. Following is the syntax of defining a Ternary Operator in C#.

 

condition_expression ? first_expression : second_expression;

 

From the above example, we can see the Ternary Operator syntax, the conditional operator (?:) will return only one value from the defined expressions either the  first_expression or the second_expression based on the value of a condition.

 

The Ternary Operator (?:) will work like as follow in C#.

 

       i.            In Ternary Operator, the conditional expression must be evaluated to either true or false. If the condition is true, the first_expression result returned by the ternary operator. 

     ii.            In case, if the condition is false, then the second_expression result returned by the operator.

 

As said earlier, the Ternary Operator (?:) is a substitute of if…else statement in C#. For instace, we can replace the below if…else statement with Ternary Operator (?:).

 

        int x = 5, y = 20;

            string result;

            // if...else statement

            if (x > y)

            {

                result = "x greater than y";

            }

            else

            {

                result = "x less than y";

            }

            //Ternary Operator (?:) statement

            result = (x > y) ? "x greater than y" : "x less than y";

 

If we observe the above example, it will be clear to us that we simplified if…else condition by replacing multiple lines of if…else condition code with Ternary Operator (?:).

 

Now, we will see the complete example of a Ternary operator (?:) in C#.

 

Ternary Operator Example in C#

 

Following is the example of using a Ternary Operator (?:) in C#.

 

using System;

namespace CSharpnaijaTutorial

{

    class Program

    {

        static void Main(string[] args)

        {

            int x = 5, y = 20;

            string result;

            //Ternary Operator (?:)

            result = (x > y) ? "x value greater than y" : "x value               less than y";

            Console.WriteLine(result);

            Console.WriteLine("Press Enter Key to Exit..");

            Console.ReadLine();

        }

    }

}

 

If you observe the above code, we used a Ternary Operator (?:) to evaluate an expression (x > y).

 

Nested Ternary Operator

we can create a Nested Ternary Operator by including multiple conditional expressions as a second or third part of expressions in ternary operator and these nested ternary operators will help us to replace if…else if statements in C#.

 

The code below is an example of replacing if…else if statement with a nested ternary operator in C#.

 

     int x = 20, y = 20;

            // If...else If Statement

            string result;

            if (x > y)

            {

                result = "x value greater than y";

            }

            else if (x < y)

            {

                result = "x value less than y";

            }

            else

            {

                result = "x value equals to y";

            }

            //Nested Ternary Operator (?:)

            result = (x > y) ? "x value greater than y" : (x < y) ? "x value less than y" : "x value equals to y";

 

 

Nested Ternary Operator Example

Following is the example of defining a nested ternary operator in C#.

 

using System;

namespace CsharpnaijaTutorial

{

    class Program

    {

        static void Main(string[] args)

        {

            int x = 20, y = 20;

            string result;

            //Nested Ternary Operator (?:)

            result = (x > y) ? "x value greater than y" : (x < y) ? "x           value less than y" : "x value equals to y";

            Console.WriteLine(result);

            Console.WriteLine("Press Enter Key to Exit..");

            Console.ReadLine();

        }

    }

}

 

The above code example shows how we can implement a nested ternary operator in C# to replace if…else if statements. 

 

References

1.       Tutlane

2.       Tutorialspoint

3.       tutorialsteacher

4.       programiz


Comments