C# 三元 (? :) 运算符
C# 三元 (? :) 运算符
在本文中,我们将学习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 else 语句。
C语言