上一章Swift教程请查看:swift操作符全解
决策结构条件语句要求程序员指定一个或多个条件评估或测试的程序,以及一个语句或语句执行如果条件的决定是正确的,并可选地,执行其他语句如果条件决定是错误的。
以下是大多数编程语言中典型的决策结构的一般形式
Swift提供了以下类型的条件语句。
编号 | 语句和解释 |
1 |
If语句 if语句由一个布尔表达式和一个或多个语句组成。 |
2 |
if…else语句 if语句后面可以跟一个可选的else语句,当布尔表达式为false时,该语句执行。 |
3 |
if…else if…else语句 if语句后面可以跟一个可选的else if…else语句,它对于使用单个if…来测试各种条件非常有用。 |
4 |
嵌套if语句 可以在另一个if或else if语句中使用一个if或else if语句。 |
5 |
Switch语句 switch语句允许对变量的值列表进行相等性测试。 |
三元?:操作符
在前一章中我们讲过条件三元运算符了?:,if…else语句,它的一般形式如下:
Exp1 ? Exp2 : Exp3;
其中Exp1、Exp2和Exp3是表达式,注意冒号的使用和位置。
?表达式是这样确定的:对Exp1求值,如果为真,则Exp2被求值并成为整个的值。如果Exp1为false,则对Exp3求值,其值成为表达式的值。
Swift if语句
if语句由一个布尔表达式和一个或多个语句组成。
语法
Swift中if语句的语法如下-
if boolean_expression {
/* 如果布尔表达式为真,语句将执行 */
}
如果布尔表达式的计算结果为true,则执行If语句中的代码块。如果布尔表达式计算结果为false,则执行If语句结束后的第一组代码(在右大括号之后)。
If语句
例子
var varA:Int = 10;
/* 使用if语句检查布尔条件 */
if varA < 20 {
/* 如果条件为真,则打印以下内容 */
print("varA小于20");
}
print("varA的值 \(varA)");
swift if…else语句
if语句后面可以跟一个可选的else语句,当布尔表达式为false时,该语句执行。
语法
Swift中if…else语句的语法如下:
if boolean_expression {
/* 如果布尔表达式为真,语句将执行 */
} else {
/* 如果布尔表达式为false,语句将执行 */
}
如果布尔表达式的计算结果为true,则执行If代码块,否则执行else代码块。
var varA:Int = 100;
/* 使用if语句检查布尔条件 */
if varA < 20 {
/* 如果条件为真,则打印以下内容 */
print("varA小于20");
} else {
/* 如果条件为假,则打印以下内容 */
print("varA小于20");
}
print("varA的值 \(varA)");
if…else if…else语句
if语句后面可以跟一个可选的else if…else语句,它对于使用单个if…else来测试各种条件非常有用。
在使用if, else
if, else语句时,有几点需要记住。
- 一个if可以有0个或1个else语句,它必须跟在任何其它的if后面。
- 一个if可以有0到多个else if语句,它们必须在else之前。
- 一旦else if成功,其余的else if或else的都将不被测试。
语法
Swift中的if…else if…else语句的语法如下
if boolean_expression_1 {
/* 当布尔表达式1为真时执行 */
} else if boolean_expression_2 {
/* 当布尔表达式2为真时执行 */
} else if boolean_expression_3 {
/* 当布尔表达式3为真时执行 */
} else {
/* 当上述条件都为空时执行 */
}
例子:
var varA:Int = 100;
/* 使用if语句检查布尔条件 */
if varA == 20 {
/* 如果条件为真,则打印以下内容 */
print("varA 等于 20");
} else if varA == 50 {
/* 如果条件为真,则打印以下内容 */
print("varA 等于 50");
} else {
/* 如果条件为假,则打印以下内容 */
print("没有一个值是匹配的");
}
print("varA的值 \(varA)")
嵌套if语句
在Swift中嵌套if-else语句总是合法的,这意味着你可以使用一个if或else if嵌入另一个if或else
if语句。
语法
嵌套if语句的语法如下-
if boolean_expression_1 {
/* 当布尔表达式1为真时执行 */
if boolean_expression_2 {
/* 当布尔表达式2为真时执行 */
}
}
你可以在其他地方进行嵌套else
if…else,方法与嵌套if语句的方法类似。
例子:
var varA:Int = 100;
var varB:Int = 200;
/* 使用if语句检查布尔条件 */
if varA == 100 {
/* 如果条件为真,则打印以下内容 */
print("第一个条件满足");
if varB == 200 {
/* 如果条件为真,则打印以下内容 */
print("第二个条件也满足");
}
}
print("varA: \(varA)");
print("varB: \(varB)");
switch switch语句
Swift中的switch语句在第一个匹配的case完成后立即完成执行,而不是像在C和c++编程语言中那样在后续的case中垫底,下面是switch语句在C和c++中的通用语法:
switch(expression){
case constant-expression :
statement(s);
break; /* 可选 */
case constant-expression :
statement(s);
break; /* 可选 */
/* 可以有任意数量的case语句 */
default : /* 可选 */
statement(s);
}
这里我们需要使用break语句从case语句中取出,否则执行控制将通过下面可用的后续case语句来匹配case语句。
语法
以下是Swift−中switch语句的通用语法:
switch expression {
case expression1 :
statement(s)
fallthrough /* 可选 */
case expression2, expression3 :
statement(s)
fallthrough /* 可选 */
default : /* 可选 */
statement(s);
}
如果我们不使用fallthrough语句,那么程序将在执行匹配的case语句之后从switch语句中出来,我们将通过以下两个示例来说明它的功能。
示例1
下面是一个switch语句的例子,这里Swift编程例子没有使用fallthrough –
var index = 10
switch index {
case 100 :
print( "Value: 100")
case 10,15 :
print( "Value = 10 || 15")
case 5 :
print( "Value = 5")
default :
print( "default case")
}