控制语句
三元运算符
C# 三元运算符 (? :)
三元运算符是一种可以替代 if...else
语句的简写形式。在深入了解三元运算符之前,建议先熟悉 C# 中的 if...else
语句。
三元运算符的基本语法:
条件表达式 ? 表达式1 : 表达式2;
三元运算符的执行流程如下:
- 如果条件表达式为
true
,则返回表达式1
的值。 - 如果条件表达式为
false
,则返回表达式2
的值。
例如,以下传统的 if...else
代码:
if (number % 2 == 0)
{
isEven = true;
}
else
{
isEven = false;
}
可以通过三元运算符简化为一行代码:
isEven = (number % 2 == 0) ? true : false;
三元运算符名称的由来
因为三元运算符需要三个操作数:条件、true
时的返回值和 false
时的返回值,因此称为“三元”运算符。
示例 1:三元运算符的使用
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
在这个示例中,number
被赋值为 2。通过三元运算符,我们可以检查这个数是否为偶数。因为 2 是偶数,表达式 (number % 2 == 0)
返回 true
,因此 isEven
的值为 true
。
同样,三元运算符还可以直接用于输出结果,而无需存储到变量中:
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";
尽管三元运算符可以使代码简洁,但当表达式过于复杂时,代码的可读性会下降。因此,建议仅在简单条件判断下使用三元运算符。