原文: https://www.programiz.com/swift-programming/ternary-conditional-operator

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

三元条件运算符"? :"if-else语句的简写。

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

  1. condition ? value1 : value2

三元条件运算符如何工作?

这是这样的

  • 如果conditiontrue,则返回value1
  • 如果conditionfalse,则返回value2

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

  1. if condition {
  2. value1
  3. } else {
  4. value2
  5. }

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

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

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


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

  1. print(true && false ? "The condition is true": "The condition is false")

The above equivalent code using if - else is:

  1. if true && false {
  2. print("The condition is true")
  3. } else {
  4. print("The condition is false")
  5. }

当您运行上述程序时,输出将是:

  1. 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嵌套

  1. if true && false {
  2. print("Result is \(true && false)")
  3. } else if true || false {
  4. print("Result is \(true || false)")
  5. } else if false || false {
  6. print("Result is \(false || false)")
  7. } else {
  8. print("Default else statement")
  9. }

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

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

当您运行上述程序时,两个输出将是:

  1. Result is true

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

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