原文: https://www.programiz.com/swift-programming/if-else-statement

在本文中,您将学习使用两个条件语句:ifif...else来控制程序执行的流程。

在编程中,您可能希望根据指定的条件truefalse(仅在运行时知道)执行不同的操作。 在这种情况下,将使用控制流语句。


Swift if语句

Swift 中if语句的语法为:

  1. if expression {
  2. // statements
  3. }
  • 这里expression是一个布尔表达式(返回truefalse)。
  • 如果将expression求值为true,则将执行if代码块内部的语句。
  • 如果将expression求值为false,则将跳过if代码块内部的语句。

if语句如何工作?

Swift `if`,`if...else`语句 - 图1


示例 1:Swift if语句

  1. let number = 10
  2. if number > 0 {
  3. print("Number is positive.")
  4. }
  5. print("This statement is always executed.")

运行该程序时,输出为:

  1. Number is positive.
  2. This statement is always executed.

在上面的程序中,我们用值 10 初始化了常量number,并且测试表达式number > 0的计算结果为true。 因此,执行if语句体内的print("Number is positive.")语句,输出Number is positive.

现在,将number的值更改为负整数。 假设-5。 在这种情况下的输出将是:

  1. This statement is always executed.

number初始化为值 -5 时,测试表达式number > 0的计算结果为false。 因此,Swift 编译器会跳过if语句主体的执行。


Swift if..else语句

如果测试表达式的值为true,则if语句执行代码的特定部分。 if语句可以具有可选的else语句。 如果测试表达式为假,则将执行else语句主体内的代码。

if-else语句的语法为:

  1. if expression {
  2. // statements
  3. } else {
  4. // statements
  5. }

if..else语句如何工作?

Swift `if`,`if...else`语句 - 图2


示例 2:Swift if else语句

  1. let number = 10
  2. if number > 0 {
  3. print("Number is positive.")
  4. } else {
  5. print("Number is not positive.")
  6. }
  7. print("This statement is always executed.")

运行该程序时,输出为:

  1. Number is positive.
  2. This statement is always executed

在上述程序中,常数number初始化为值 10,并且测试表达式number > 0的值为true。 因此,if语句体内的语句print("Number is positive.")被执行。

输出Number is positive.else主体内部的语句将被跳过。

现在,将number的值更改为负数。 假设 -5。 在这种情况下的输出将是:

  1. Number is not positive.
  2. This statement is always executed.

number为 -5 时,将测试表达式number > 0求值为false。 在这种情况下,将执行else主体内部的语句,并跳过if主体内部的语句。

您还可以在 Swift 中用三元运算符替换if..else语句,这是if...else语句的简写形式。


Swift if..else..if语句

在 Swift 中,还可以在许多代码中执行一个代码块。 为此,可以将if..else..if阶梯用作:

if-else-if语句的语法为:

  1. if expression1 {
  2. // statements
  3. }
  4. else if expression2 {
  5. // statements
  6. }
  7. else if expression3 {
  8. // statements
  9. }
  10. .
  11. .
  12. else {
  13. // statements
  14. }

if语句从上到下执行。 一旦测试表达式为真,将在该if语句的主体内部执行代码。 然后,程序控制跳到if-else-if梯形图之外。

如果所有测试表达式均为false,则执行else主体内部的代码


示例 3:Swift if..else..if语句

以下程序检查number是正数,负数还是 0。

  1. let number = 0;
  2. if number > 0 {
  3. print("Number is positive.")
  4. }
  5. else if (number < 0) {
  6. print("Number is negative.")
  7. }
  8. else {
  9. print("Number is 0.")
  10. }

运行该程序时,输出为:

  1. Number is 0.

在上面的程序中,常量number初始化为值 0。由于从上到下执行语句,因此它将检查计算为false的表达式number > 0

然后,它检查下一个表达式number < 0,该表达式的结果也为false

因此,执行else主体内部的语句print("Number is 0."),其输出Number is 0.


Swift 嵌套if..else语句

在 Swift 中,if..else语句中可能包含if..else语句。 称为嵌套if...else语句。

您还可以在 Swift 中用switch替换嵌套的if..else语句,这在处理几个可能的选项时有时是一种更简单的方法。

嵌套的if-else语句的语法为:

  1. if expression1 {
  2. if expression2 {
  3. // statements
  4. } else {
  5. // statements
  6. }
  7. }
  8. else {
  9. if expression3 {
  10. // statements
  11. } else {
  12. // statements
  13. }
  14. }

示例 4:嵌套if...else语句

这是一个使用嵌套的if语句查找 3 个数字中最大的一个的程序。

  1. let n1 = -1.0, n2 = 4.5, n3 = -5.3
  2. if n1 >= n2 {
  3. if n1 >= n3 {
  4. print("Largest number is ", n1)
  5. }
  6. else {
  7. print("Largest number is ", n3)
  8. }
  9. }
  10. else {
  11. if n2 >= n3 {
  12. print("Largest number is ", n2)
  13. }
  14. else {
  15. print("Largest number is ", n3)
  16. }
  17. }

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

  1. Largest number is 4.5