Swift if,if ... else语句

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

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

Swift if(if-then)语句

Swift中 if语句 的语法为:

if expression {
	// 语句
}
  • expression是一个布尔表达式(返回 true 或 false)。

  • 如果 expression 求值为 true,则执行 If 代码块中的语句。

  • 如果 expression 求值为 false,则 if 代码块中的语句从执行中跳过。

if语句如何工作?

Swift中的if语句如何工作?

示例1:Swift if语句

let number = 10
if number > 0 {
	print("数字为正。")
}
print("此语句始终执行。")

运行该程序时,输出为:

数字为正。
此语句始终执行。

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

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

该语句始终执行。

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

Swift if..else(if-else)语句

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

if-else语句的语法为:

if expression {
	// 语句
} else {
	// 语句
}

if..else 语句如何工作?

Swift中的if..else语句如何工作?

示例2:Swift if else语句

let number = 10
if number > 0 {
	print("数字为正。")
} else {
	print("数字不是正数。")
}
print("此语句始终执行。")

运行该程序时,输出为:

数字为正。
此语句始终执行。

在上述程序中,常量number用值 10 初始化,并且测试表达式 (number > 0) 计算结果为true。因此,if语句体内的 print("数字为正。") 语句将被执行。

此输出 : 数字为正。在控制台中,else主体内的语句将从执行中跳过。

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

数字不是正数。
此语句始终执行。

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

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

Swift if..else..if(if-else-if)语句

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

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

if expression1 {
	// 语句
}
else if expression2 {
	// 语句
}
else if expression3 {
	// 语句
}
.
.
else {
	// 语句
}

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

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

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

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

let number = 0;
if number > 0 {
	print("数字为正。")
}
else if (number < 0) {
	print("数字为负数。")
}
else {
	print("数字为0。")
}

运行该程序时,输出为:

数字为0。

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

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

因此,print("Number is 0.")将执行else主体内部的语句,该语句在控制台中输出数字为0

Swift 嵌套 if..else语句

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

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

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

if expression1 {
	if expression2 {
		// 语句
	} else {
		// 语句
	}
}
else {
	if expression3 {
		// 语句
	} else {
		// 语句
	}
}

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

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

let n1 = -1.0, n2 = 4.5, n3 = -5.3
if n1 >= n2 {
	if n1 >= n3 {
		print("最大的数字是 ", n1)
	}
	else {
		print("最大的数字是 ", n3)
	}
}
else {
	if n2 >= n3 {
		print("最大的数字是 ",  n2)
	}
	else {
		print("最大的数字是 ",  n3)
	}
}

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

最大的数字是 4.5