跳到主要内容

Swift 三元条件运算符

提示
  1. 三元运算符概念:Swift 的三元运算符用于根据条件执行不同的表达式,格式为 条件 ? 表达式1 : 表达式2
  2. 简化 if...else 语句:三元运算符可以替代简单的 if...else 语句,使代码更简洁和可读。
  3. 避免嵌套使用:虽然支持嵌套三元运算符,但不建议使用,因为它们可能会使代码变得复杂和难以理解。

三元运算符可以在某些场景下替换 if...else 语句。

在学习三元运算符之前,请确保了解 Swift if...else 语句

Swift 中的三元运算符

三元运算符评估一个条件,并根据该条件执行代码块。其语法为

条件 ? 表达式1 : 表达式2

这里,三元运算符评估 条件

  • 如果 条件true,则执行 表达式1
  • 如果 条件false,则执行 表达式2

三元运算符接受 3 个操作数条件表达式1表达式2)。因此,名称为 三元运算符

示例:Swift 三元运算符

// 程序用于检查通过或不通过
let 分数 = 60

// 使用三元运算符
let 结果 = (分数 >= 40) ? "通过" : "不通过"

print("你 " + 结果 + " 了考试")

输出

你 通过了考试。

在上面的示例中,我们使用了三元运算符来检查通过还是不通过。

let 结果 = (分数 >= 40) ? "通过" : "不通过"

这里,如果 分数 大于或等于 40通过 被赋值给 结果。否则,不通过 被赋值给 结果

用三元运算符替代 if...else

三元运算符可以用来替代某些类型的 if...else 语句。例如,

你可以将这段代码

// 检查数字是正数还是负数
let 数字 = 15
var 结果 = ""

if (数字 > 0) {
结果 = "正数"
}
else {
结果 = "负数"
}

print(结果)

替换为

// 使用三元运算符检查数字是正数还是负数
let 数字 = 15

let 结果 = (数字 > 0) ? "正数" : "负数"
print(结果)

输出

正数

这里,两个程序都给出了相同的输出。然而,使用三元运算符使我们的代码更加可读和清晰。

嵌套三元运算符

我们可以在一个三元运算符内使用另一个三元运算符。这在 Swift 中被称为嵌套三元运算符。例如,

// 程序用于检查数字是正数、零还是负数
let 数字 = 7

let 结果 = (数字 == 0) ? "零" : ((数字 > 0) ? "正数" : "负数")

print("这个数字是 \(结果)。")

输出

这个数字是 正数。

在上述示例中,如果条件 数字 == 0false,则执行嵌套的三元运算符 ((数字 > 0) ? "正数" : "负数")

注意: 不建议使用嵌套三元运算符,因为它们会使代码更复杂。