猿教程 Logo

C#三元运算符

C#包括一种特殊类型的决策操作符'?:',称为三元运算符。

三元运算符语法:

var result = Boolean conditional expression ? first statement : second statement

从上面的语法可以看出,三元运算符包括三个部分。 第一部分(?之前)包括返回布尔值true或false的条件表达式。 第二部分(在?和:之间)之后包含一个语句,如果第一部分中的条件表达式求值为true,则将返回该语句。 第三部分包括另一个语句,如果条件表达式返回false,则将返回该语句。

注意:

三元运算符返回包含在其第二或第三部分中的值或表达式。 它不执行语句。

参考下面的示例,其中条件表达式x> y返回false,因此它返回?后的第一个语句。

三元表达式案例:

int x = 20, y = 10;
var result = x > y ? "x is greater than y" : "x is less than or equal to y";
Console.WriteLine(result);

输出:

x is greater than y

三元运算符可以返回任何数据类型的值。 所以建议将其存储在隐式类型变量var中。

例如,它可以返回一个整数值,如下所示。

int x = 20, y = 10;
var result = x > y ? x : y;
Console.WriteLine(result);

输出:

20

也可以使用三元运算符而不是if-else语句。 上面的例子可以使用if-else语句编写,如下所示。

int x = 20, y = 10;
int result = 0;
if (x > y)
result = x;
else if (x < y)
result = y;
Console.WriteLine(result);

输出:

20

嵌套三元表达式

通过将条件表达式包括为三元运算符的第二个(后?)或第三部分(后:),可以嵌套三元运算符。参考以下示例。

嵌套三元表达式案例:

int x = 2, y = 10;
string result = x > y ? "x is greater than y" : x < y ?
                "x is less than y" : x == y ?
                    "x is equal to y" : "No result";

三元运算符是右关联的。 表达式a? b:c? d:e被评价为 b:(c→d:e),而不是(a→b:c)→ d:e。

要点
  1. 三元运算符:布尔表达式? 第一语句:第二语句;

  2. 三元运算符返回一个值,它不执行它。

  3. 它可以用来替换一个简短的if-else语句。

  4. 允许嵌套三元运算符。 它将从右到左进行评估。


版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/CSharp/Csharp-ternary-operator.html