C# 三元运算符(? :)
提示
- 三元运算符的基本使用:C# 中的三元运算符
? :
是if...else
语句的简化形式,根据一个布尔条件表达式选择两个值中的一个。 - 语法和工作原理:三元运算符的语法为
条件 ? 表达式1 : 表达式2
,其中如果条件为真,则结果为表达式1
,否则为表达式2
。 - 适用场景和代码简洁性:三元运算符适用于替换简单的
if...else
语句,有助于缩短代码长度,但可能降低代码的可读性,因此应谨慎使用。
三元运算符是 if...else 语句的替代品。因此,在继续学习本教程之前,请先了解 C# if...else 语句(如果您还没有)。
三元运算符的语法是:
条件 ? 表达式1 : 表达式2;
三元运算符的工作原理如下:
- 如果
条件
表达的表达式为true
,则三元运算符返回表达式1
的结果。 - 如果为
false
,则返回表达式2
的结果。
例如,我们可以用以下代码
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 比 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 语句。