原文: https://www.programiz.com/swift-programming/if-else-statement
在编程中,您可能希望根据指定的条件true
或false
(仅在运行时知道)执行不同的操作。 在这种情况下,将使用控制流语句。
Swift 中if
语句的语法为:
if expression {
// statements
}
- 这里
expression
是一个布尔表达式(返回true
或false
)。 - 如果将
expression
求值为true
,则将执行if
代码块内部的语句。 - 如果将
expression
求值为false
,则将跳过if
代码块内部的语句。
let number = 10
if number > 0 {
print("Number is positive.")
}
print("This statement is always executed.")
运行该程序时,输出为:
Number is positive.
This statement is always executed.
在上面的程序中,我们用值 10 初始化了常量number
,并且测试表达式number > 0
的计算结果为true
。 因此,执行if
语句体内的print("Number is positive.")
语句,输出Number is positive.
。
现在,将number
的值更改为负整数。 假设-5
。 在这种情况下的输出将是:
This statement is always executed.
当number
初始化为值 -5 时,测试表达式number > 0
的计算结果为false
。 因此,Swift 编译器会跳过if
语句主体的执行。
如果测试表达式的值为true
,则if
语句执行代码的特定部分。 if
语句可以具有可选的else
语句。 如果测试表达式为假,则将执行else
语句主体内的代码。
if-else
语句的语法为:
if expression {
// statements
} else {
// statements
}
let number = 10
if number > 0 {
print("Number is positive.")
} else {
print("Number is not positive.")
}
print("This statement is always executed.")
运行该程序时,输出为:
Number is positive.
This statement is always executed
在上述程序中,常数number
初始化为值 10,并且测试表达式number > 0
的值为true
。 因此,if
语句体内的语句print("Number is positive.")
被执行。
输出Number is positive.
,else
主体内部的语句将被跳过。
现在,将number
的值更改为负数。 假设 -5。 在这种情况下的输出将是:
Number is not positive.
This statement is always executed.
当number
为 -5 时,将测试表达式number > 0
求值为false
。 在这种情况下,将执行else
主体内部的语句,并跳过if
主体内部的语句。
您还可以在 Swift 中用三元运算符替换if..else
语句,这是if...else
语句的简写形式。
在 Swift 中,还可以在许多代码中执行一个代码块。 为此,可以将if..else..if
阶梯用作:
if-else-if
语句的语法为:
if expression1 {
// statements
}
else if expression2 {
// statements
}
else if expression3 {
// statements
}
.
.
else {
// statements
}
if
语句从上到下执行。 一旦测试表达式为真,将在该if
语句的主体内部执行代码。 然后,程序控制跳到if-else-if
梯形图之外。
如果所有测试表达式均为false
,则执行else
主体内部的代码
以下程序检查number
是正数,负数还是 0。
let number = 0;
if number > 0 {
print("Number is positive.")
}
else if (number < 0) {
print("Number is negative.")
}
else {
print("Number is 0.")
}
运行该程序时,输出为:
Number is 0.
在上面的程序中,常量number
初始化为值 0。由于从上到下执行语句,因此它将检查计算为false
的表达式number > 0
。
然后,它检查下一个表达式number < 0
,该表达式的结果也为false
。
因此,执行else
主体内部的语句print("Number is 0.")
,其输出Number is 0.
。
在 Swift 中,if..else
语句中可能包含if..else
语句。 称为嵌套if...else
语句。
您还可以在 Swift 中用switch
替换嵌套的if..else
语句,这在处理几个可能的选项时有时是一种更简单的方法。
嵌套的if-else
语句的语法为:
if expression1 {
if expression2 {
// statements
} else {
// statements
}
}
else {
if expression3 {
// statements
} else {
// statements
}
}
这是一个使用嵌套的if
语句查找 3 个数字中最大的一个的程序。
let n1 = -1.0, n2 = 4.5, n3 = -5.3
if n1 >= n2 {
if n1 >= n3 {
print("Largest number is ", n1)
}
else {
print("Largest number is ", n3)
}
}
else {
if n2 >= n3 {
print("Largest number is ", n2)
}
else {
print("Largest number is ", n3)
}
}
当您运行上述程序时,输出将是:
Largest number is 4.5