跳到主要内容

C# 三元运算符

介绍

在 C# 中,三元运算符(也称为条件运算符)是一种简洁的条件表达式,用于根据条件的真假返回不同的值。它是 if-else 语句的简化形式,特别适合在需要根据条件快速赋值或返回值的场景中使用。

三元运算符的语法如下:

csharp
condition ? expression1 : expression2
  • condition 是一个布尔表达式,结果为 truefalse
  • 如果 conditiontrue,则返回 expression1 的值。
  • 如果 conditionfalse,则返回 expression2 的值。
提示

三元运算符非常适合简化代码,但过度使用可能会降低代码的可读性。建议在简单的条件判断中使用它。


基本用法

让我们从一个简单的例子开始,了解三元运算符的基本用法。

csharp
int number = 10;
string result = (number > 5) ? "大于 5" : "小于或等于 5";
Console.WriteLine(result); // 输出: 大于 5

在这个例子中:

  • number > 5 是条件,结果为 true
  • 因为条件为 true,所以返回 "大于 5"
  • 最终,result 的值为 "大于 5"

逐步讲解

1. 条件部分

三元运算符的第一部分是条件,必须是一个布尔表达式。例如:

csharp
bool isRaining = true;

2. 表达式部分

根据条件的真假,三元运算符会返回不同的表达式值。例如:

csharp
string weather = isRaining ? "带伞" : "不用带伞";
  • 如果 isRainingtrue,则 weather 的值为 "带伞"
  • 如果 isRainingfalse,则 weather 的值为 "不用带伞"

3. 返回值

三元运算符的返回值可以直接赋值给变量,也可以用于其他表达式中。例如:

csharp
int score = 85;
string grade = (score >= 60) ? "及格" : "不及格";
Console.WriteLine(grade); // 输出: 及格

实际案例

案例 1:判断数字的奇偶性

以下代码使用三元运算符判断一个数字是奇数还是偶数:

csharp
int number = 7;
string parity = (number % 2 == 0) ? "偶数" : "奇数";
Console.WriteLine(parity); // 输出: 奇数

案例 2:根据用户输入显示消息

以下代码根据用户输入的值显示不同的消息:

csharp
Console.Write("请输入你的年龄: ");
int age = int.Parse(Console.ReadLine());
string message = (age >= 18) ? "你已成年" : "你未成年";
Console.WriteLine(message);
  • 如果用户输入 20,输出为 "你已成年"
  • 如果用户输入 15,输出为 "你未成年"

嵌套三元运算符

三元运算符可以嵌套使用,但需要注意代码的可读性。以下是一个嵌套三元运算符的例子:

csharp
int score = 75;
string result = (score >= 90) ? "优秀" :
(score >= 60) ? "及格" : "不及格";
Console.WriteLine(result); // 输出: 及格
警告

嵌套三元运算符虽然功能强大,但容易使代码变得难以理解。建议在必要时使用,并添加注释以增强可读性。


总结

三元运算符是 C# 中一种简洁的条件表达式,适合在简单的条件判断中使用。它的语法为 condition ? expression1 : expression2,根据条件的真假返回不同的值。虽然三元运算符可以简化代码,但过度使用或嵌套可能会降低代码的可读性。


附加资源与练习

练习 1

编写一个程序,使用三元运算符判断用户输入的数字是否为正数、负数或零。

练习 2

尝试将以下 if-else 语句转换为三元运算符:

csharp
int temperature = 25;
string weather;
if (temperature > 30)
{
weather = "炎热";
}
else if (temperature > 20)
{
weather = "温暖";
}
else
{
weather = "凉爽";
}
Console.WriteLine(weather);

附加资源