# Swift 三元条件运算符

> 原文： [https://www.programiz.com/swift-programming/ternary-conditional-operator](https://www.programiz.com/swift-programming/ternary-conditional-operator)

#### 在本文中，您将学习使用条件或三元运算符来更改程序的控制流。

三元条件运算符`"? :"`是[`if-else`语句](/swift-programming/if-else-statement "Swift if-else statement")的简写。

三元条件运算符的语法为：

```swift
condition ? value1 : value2
```

* * *

## 三元条件运算符如何工作？

这是这样的

*   如果`condition`为`true`，则返回`value1`。
*   如果`condition`为`false`，则返回`value2`。

上面的等效代码使用`if-else`是：

```swift
if condition {
	value1
} else {
	value2
}
```

* * *

## 为什么使用三元条件运算符？

您可能想知道如果条件运算符执行与`if-else`语句相同的工作，为什么还要使用条件运算符。 使用它的主要目的是使代码更短，更易读。

对于简单条件，您可以用比`if-else`更少的代码在一行中对其进行求值。

* * *

## 示例 1：使用三元条件运算符的简单示例

```swift
print(true && false ? "The condition is true": "The condition is false")
```

The above equivalent code using if - else is:

```swift
if true && false {
	print("The condition is true")
} else {
	print("The condition is false")
} 
```

当您运行上述程序时，输出将是：

```swift
The condition is false
```

在上述程序中，表达式`true && false`的值为`false`，因此该语句返回字符串`The condition is false`，并且`print`语句在控制台中输出该字符串。

如果将表达式更改为`true || false`，则该语句的计算结果为`true`，并返回字符串`The condition is true`，并且`print`语句在控制台中输出该字符串。

* * *

## 要记住的事情

三元条件运算符也可以用作`if-else-if`语句的替代项。

通过使用三元条件运算符，您可以用单行替换`if-else-if`代码的多行。

但是，这可能不是一个好主意。

### 示例 2：使用三元条件运算符替代`if-else`嵌套

```swift
if true && false {
	print("Result is \(true && false)")
} else if true || false {
	print("Result is \(true || false)")
} else if false || false {
	print("Result is \(false || false)")
} else {
	print("Default else statement")
} 
```

上面使用三元条件运算符的等效代码为：

```swift
print(true && false ? "Result is \(true && false)" : true || false ? "Result is \(true || false)" : false || false ? "Result is \(false || false)" : "The condition is unknown")
```

当您运行上述程序时，两个输出将是：

```swift
Result is true
```

在上述程序中，尽管`if-else-if`的语句通过使用条件运算符替换为单行。 三元条件运算符中使用的表达式确实很难理解。

因此，仅坚持使用三进制条件运算符作为`if-else`语句的替代。