练习 - 实现条件运算符
- 7 分钟
假设你需要快速确定客户在购买时是否有资格享受促销折扣。 促销的详细信息表明,当购买价值大于 1000 欧元时,则有资格享受 100 欧元的折扣。 如果购买金额为 1000 欧元或更少,则有资格享受 50 欧元的折扣。
虽然当然可以使用 if ... elseif ... else 分支构造来表达此业务规则,但使用条件运算符来评估促销折扣的资格可能是更好的选择。 条件运算符使用精简格式,这样可以节省几行代码,还有可能使代码意图更明显。
什么是条件运算符?
条件运算符 计算布尔表达式,并根据布尔表达式的计算结果是 true 还是 false,返回两个结果之一?:。 条件运算符通常称为三元条件运算符。
其基本形式如下:
<evaluate this condition> ? <if condition is true, return this value> : <if condition is false, return this value>
花点时间考虑如何将条件运算符应用于促销折扣方案。 你的目标是向客户显示一条消息,显示其折扣百分比。 他们的折扣金额将取决于他们是否在购买时花费了超过 1000 欧元。
添加使用条件运算符的代码
确保在 Visual Studio Code 中打开了一个空的 Program.cs 文件。 如有必要,请打开 Visual Studio Code,然后完成以下步骤,以在编辑器中准备 Program.cs 文件:
- 在“文件”菜单中,选择“打开文件夹”。
- 使用“打开文件夹”对话框导航到 CsharpProjects 文件夹,然后打开。
- 在 Visual Studio Code 的“资源管理器”窗格中,选择“Program.cs”。
- 在 Visual Studio Code 的“选择”菜单上,选择“全选”,然后按 Delete 键。
在 Visual Studio Code 编辑器中键入以下代码。
int saleAmount = 1001; int discount = saleAmount > 1000 ? 100 : 50; Console.WriteLine($"Discount: {discount}");在 Visual Studio Code 的“文件”菜单上,选择“保存”。
在生成或运行代码之前,必须保存 Program.cs 文件。
在“资源管理器”面板中,若要在 TestProject 文件夹位置打开终端,请右键单击“TestProject”,然后选择“在集成终端中打开”。
此时应打开显示命令提示符的终端面板。 命令提示符应显示 TestProject 文件夹位置的文件夹路径。
在终端命令提示符处,若要运行代码,请键入 dotnet run,然后按 Enter。
运行代码,应看到以下输出:
Discount: 100
使用内联的条件运算符
通过消除临时变量 discount 可以进一步压缩此代码。
在 Visual Studio Code 编辑器中更新代码,如下所示:
int saleAmount = 1001; // int discount = saleAmount > 1000 ? 100 : 50; Console.WriteLine($"Discount: {(saleAmount > 1000 ? 100 : 50)}");在 Visual Studio Code 的“文件”菜单上,选择“保存”。
在终端命令提示符处,若要运行代码,请键入 dotnet run,然后按 Enter。
请注意,输出相同。
请花点时间检查更新后的
Console.WriteLine()语句。请注意,必须将整个条件运算符语句括在括号中。 括号可确保运行时理解您的意图,即显示条件结果而不是评估条件 (saleAmount > 1000) 的结果。
注意
虽然此特定示例很紧凑,并且显示了可能的内容,但读起来要困难一些。 合并代码行并不总是一个好主意,尤其是在它对代码的整体可读性产生负面影响时。 这通常是主观判断。
概括
应该记住有关条件运算符的以下事实:
- 可以使用条件运算符来减小代码的大小,但应确保生成的代码易于阅读。
- 当需要返回基于二进制条件的值时,可以使用条件运算符。 当条件的计算结果为 true 时,代码将返回第一个选项,当条件的计算结果为 false 时,代码将返回第二个选项。