复制代码
let finalSquare = 25
var board = Int[](count: finalSquare + 1, repeatedValue: 0)
board[03] = +08; board[06] = +11; board[09] = +09; board[10] = +02
board[14] = -10; board[19] = -11; board[22] = -02; board[24] = -08
var square = 0
var diceRoll = 0
在这个版本的游戏中,循环中第一个操作是检查一个梯子或蛇。没有梯子能直接把玩家带到方块25,所以不可能只爬一个梯子就赢了。因此在循环里先检查梯子或蛇会更安全。
游戏的开始,玩家在“方块0”。 board[0]永远等于0,没有别的功能:
复制代码do {
// move up or down for a snake or ladder
square += board[square]
// roll the dice
if ++diceRoll == 7 { diceRoll = 1 }
// move by the rolled amount
square += diceRoll
} while square < finalSquare
println("Game over!")
在代码检查后,开始摇骰子,玩家通过diceRoll方块向前移动,该循一直环执行到最后。
循环条件(while square < finalSquare)跟之前例子一样,但是这次会在第一次循环的结尾才计算。do-while循环的结构比while循环更适合本例。上面do-while中,在循环条件确认square仍旧在游戏板里面后,square += board[square]会直接进行计算,不必进行数组越界的检查。
三、Conditional Statements - 条件语句
编程中常常根据不同的条件执行不同的代码,你可能会要代码在出错后运行额外的语句,或者当数值越界时展示一个消息。我们可以用conditional(条件)来实现。
Swift提供两种方式来添加代码的分支,常见的if和switch语句。显然,用if语句来计算只有少量分支的的条件,而Switch用于更复杂的情况,特别是在模式匹配的时候有助于选择合适的代码分支来执行。
If语句
在下面最简单的例子里,if语句有一个if条件。所有的语句都只有在if条件为true的情况下才执行:
复制代码var temperatureInFahrenheit = 30
if temperatureInFahrenheit <= 32 {
println("It's very cold. Consider wearing a scarf.")
}
// prints "It's very cold. Consider wearing a scarf."
前面的例子检查了温度是否等于32摄氏度。如果是则打印消息。否则不打印消息,直接执行if语句大括号后面的代码。








