条件语句通过设定一个或者多个条件来执行程序,在条件为true时执行指定的语句,在条件为false时执行另外指定的语句。
Swift提供了两种向代码添加条件分支的方法:if语句和switch语句。通常,您使用if语句来评估只有少数可能结果的简单条件。switch语句更适合具有多个可能排列的更复杂的条件,并且在模式匹配可以帮助选择适当的代码分支来执行的情况下非常有用。if语句的流程图如下:
if条件语句有多种类型的语句:
if语句:有单个if条件,当该条件未true时,他才会执行一组语句
if...else 语句:if语句可以为if条件为false的情况提供一组替代语句,称为 else 子句。这些语句由else关键字表示。
if...else if...else语句:多个条件判断
内嵌if语句:也可以在if语句或者else if内嵌if...else等
switch语句考虑一个值,并将其与几种可能的匹配模式进行比较。然后,它根据第一个成功匹配的模式执行适当的代码块。switch语句为响应多个潜在状态提供了if语句的替代方法。
以最简单的形式,switch语句将一个值与同一类型的一个或多个值进行比较。
Swift 语言中只要匹配到 case 语句,则整个 switch 语句执行完成。
一般在 switch 语句中不使用 fallthrough 语句。
这里我们需要注意 case 语句中如果没有使用 fallthrough 语句,则在执行当前的 case 语句后,switch 会终止,控制流将跳转到 switch 语句后的下一行。
如果使用了fallthrough 语句,则会继续执行之后的 case 或 default 语句,不论条件是否满足都会执行。
在大多数语言中,switch 语句块中,case 要紧跟 break,否则 case 之后的语句会顺序运行,而在 Swift 语言中,默认是不会执行下去的,switch 也会终止。如果你想在 Swift 中让 case 之后的语句会按顺序继续运行,则需要使用 fallthrough 语句。
1.复合匹配:为了让单个case同时匹配两个值,可以将这个两个值组合成一个复合匹配,并且用逗号分开 ;case 9,10
2.区间匹配:case 分支的模式也可以是一个值的区间;case 9..<12
3.元组:元组的每个元素都可以针对不同的值或值间隔进行测试。或者,使用下划线字符(_),也称为通配符模式,来匹配任何可能的值;case( 0, 0) case( _, 0)
4.值绑定:case 分支允许将匹配的值声明为临时常量或变量,并且在case分支体内使用 —— 这种行为被称为值绑定(value binding),因为匹配的值在case分支体内,与临时的常量或变量绑定;case(let x, 0)
5.where:case 分支的模式可以使用where语句来判断额外的条件;case let(x, y) where x == y
网友评论