原文: https://www.programiz.com/csharp-programming/ternary-operator
在本文中,我们将学习 C# 三元运算符以及如何使用它来控制程序流。
三元运算符替代if...else
语句。 因此,在继续学习本教程之前,请先通过 C# if...else
语句(如果尚未这样做)。
三元运算符的语法为:
Condition ? Expression1 : Expression2;
三元运算符的工作方式如下:
- 如果
Condition
表示的表达式为true
,则Expression1
的结果由三元运算符返回。 - 如果为
false
,则返回Expression2
的结果。
例如,我们可以替换以下代码
if (number % 2 == 0)
{
isEven = true;
}
else
{
isEven = false;
}
与
isEven = (number % 2 == 0) ? true : false ;
为什么叫三元运算符?
该运算符采用 3 个操作数,因此称为三元运算符。
示例 1:C# 三元运算符
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
在上述程序中,2
被分配给变量number
。 然后,使用三元运算符检查number
是否为偶数。
由于 2 是偶数,因此表达式(number % 2 == 0
)返回true
。 我们还可以使用三元运算符返回数字,字符串和字符。
代替将返回值存储在变量isEven
中,我们可以直接将三元运算符返回的值打印为:
Console.WriteLine((number % 2 == 0) ? true : false);
什么时候使用三元运算符?
三元运算符可用于用单行替换多行代码。 但是,我们不应过度使用它。
例如,我们可以替换以下if..else if
代码
if (a > b)
{
result = "a is greater than b";
}
else if (a < b)
{
result = "b is greater than a";
}
else
{
result = "a is equal to b";
}
只需一行代码
result = a > b ? "a is greater than b" : a < b ? "b is greater than a" : "a is equal to b";
如我们所见,使用三元运算符可以减少代码的长度,但是这使我们难以理解代码的逻辑。
因此,最好只使用三元运算符替换简单的if
语句。