在本文中,您将学习使用两个条件语句:if和if ... else来指定程序执行的流程。
在编程中,您可能希望根据指定的条件是 true 或false(仅在运行时知道)执行不同的操作。在这种情况下,将使用控制流语句。
Swift中 if语句 的语法为:
if expression { // 语句 }
expression是一个布尔表达式(返回 true 或 false)。
如果 expression 求值为 true,则执行 If 代码块中的语句。
如果 expression 求值为 false,则 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语句主体的执行。
如果 if 测试表达式的值为true,则if语句执行代码的特定部分。if语句可以具有可选的else语句。如果测试表达式为 false,则执行else语句主体内的代码。
if-else语句的语法为:
if expression { // 语句 } 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语句的语法为:
if expression1 { // 语句 } else if expression2 { // 语句 } else if expression3 { // 语句 } . . else { // 语句 }
if语句从上到下执行。一旦测试表达式为真,将在该if语句的主体内执行代码。然后,程序控制跳到if-else-if阶梯之外。
如果所有测试表达式均为 false,则执行else主体内部的代码
以下程序检查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语句中可能包含其他的if..else语句。称为嵌套if ... else语句。
您还可以在Swift中用switch替换嵌套的if..else语句,这在处理几个可能的选项时有时是一种更简单的方法。
嵌套的if-else语句的语法为:
if expression1 { if expression2 { // 语句 } else { // 语句 } } else { if expression3 { // 语句 } 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