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语言