for-in循环
可以使用 for-in
循环来遍历一个集合中的所有元素,例如数组中的元素、范围内的数字或者字符串中的字符。
遍历数字区间
let minutes = 60
for tickMark in 0..<minutes {
// 每一分钟都渲染一个刻度线(60次)
}
while循环
while
循环会一直运行一段语句直到条件变成 false
。这类循环适合使用在第一次迭代前,迭代次数未知的情况下。Swift 提供两种 while
循环形式:
-
while
循环,每次在循环开始时计算条件是否符合;
while
循环从计算一个条件开始。如果条件为 true
,会重复运行一段语句,直到条件变为 false
。
while condition {
statements
}
-
repeat-while
循环,每次在循环结束时计算条件是否符合
while
循环的另外一种形式是 repeat-while
,它和 while
的区别是在判断循环条件之前,先执行一次循环的代码块。然后重复循环直到条件为 false
。
repeat {
statements
} while condition
条件语句
if
if
语句最简单的形式就是只包含一个条件,只有该条件为 true
时,才执行相关代码:
var temperatureInFahrenheit = 30
if temperatureInFahrenheit <= 32 {
print("It's very cold. Consider wearing a scarf.")
}
// 输出“It's very cold. Consider wearing a scarf.”
Switch
switch
语句会尝试把某个值与若干个模式(pattern)进行匹配。根据第一个匹配成功的模式,switch
语句会执行对应的代码。当有可能的情况较多时,通常用 switch
语句替换 if
语句。
switch some value to consider {
case value 1:
respond to value 1
case value 2,
value 3:
respond to value 2 or 3
default:
otherwise, do something else
}
控制转移语句
Continue
continue
语句告诉一个循环体立刻停止本次循环,重新开始下次循环。
Break
break
语句会立刻结束整个控制流的执行。break
可以在 switch
或循环语句中使用,用来提前结束 switch
或循环语句。
贯穿(Fallthrough)
fallthrough
关键字不会检查它下一个将会落入执行的 case 中的匹配条件。fallthrough
简单地使代码继续连接到下一个 case 中的代码,这和 C 语言标准中的 switch
语句特性是一样的。
带标签带语句
label name: while condition {
statements
}
//实例
gameLoop: while square != finalSquare {
diceRoll += 1
if diceRoll == 7 { diceRoll = 1 }
switch square + diceRoll {
case finalSquare:
// 骰子数刚好使玩家移动到最终的方格里,游戏结束。
break gameLoop
case let newSquare where newSquare > finalSquare:
// 骰子数将会使玩家的移动超出最后的方格,那么这种移动是不合法的,玩家需要重新掷骰子
continue gameLoop
default:
// 合法移动,做正常的处理
square += diceRoll
square += board[square]
}
}
print("Game over!")