您的位置:首页 > 移动开发 > Swift

Swift-条件语句

2016-05-20 10:22 417 查看
//: Playground - noun: a place where people can play

import UIKit

var str = "Hello, playground"

//For 循环
/*
Swift 提供两种for循环形式以来按照指定的次数多次执行一系列语句:

for-in循环对一个集合里面的每个元素执行一系列语句。
for循环,用来重复执行一系列语句直到达成特定条件达成,一般通过在每次循环完成后增加计数器的值来实现。

*/

for index in 1...5 {
print("\(index) times 5 is \(index * 5)")
}

/*

下面是一般情况下这种循环方式的格式:

for initialization; condition; increment { statements }
和 C 语言中一样,分号将循环的定义分为 3 个部分,不同的是,Swift 不需要使用圆括号将“initialization; condition; increment”包括起来。

这个循环执行流程如下:

循环首次启动时,初始化表达式被调用一次,用来初始化循环所需的所有常量和变量。
条件表达式被调用,如果表达式调用结果为false,循环结束,继续执行for循环关闭大括号 (})之后的代码。如果表达式调用结果为true,则会执行大括号内部的代码。
执行所有语句之后,执行递增表达式。通常会增加或减少计数器的值,或者根据语句输出来修改某一个初始化的变量。当递增表达式运行完成后,重复执行第 2 步,条件表达式会再次执行。
在初始化表达式中声明的常量和变量(比如var index = 0)只在for循环的生命周期里有效。如果想在循环结束后访问index的值,你必须要在循环生命周期开始前声明index。
*/

var index: Int
for index = 0; index < 3; index += 1 {
print("index is \(index)")
}

/*

While 循环

while循环运行一系列语句直到条件变成false。这类循环适合使用在第一次迭代前迭代次数未知的情况下。Swift 提供两种while循环形式:

while循环,每次在循环开始时计算条件是否符合;
repeat-while循环,每次在循环结束时计算条件是否符合。

While

while循环从计算单一条件开始。如果条件为true,会重复运行一系列语句,直到条件变为false。

下面是一般情况下 while 循环格式:

while condition { statements }
*/

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
while square < finalSquare {
// 掷骰子
if ++diceRoll == 7 { diceRoll = 1 }
// 根据点数移动
square += diceRoll
if square < board.count {
// 如果玩家还在棋盘上,顺着梯子爬上去或者顺着蛇滑下去
square += board[square]
}
}
print("Game over!")

/**/
//控制转移语句
/*
Continue

continue语句告诉一个循环体立刻停止本次循环迭代,重新开始下次循环迭代。就好像在说“本次循环迭代我已经执行完了”,但是并不会离开整个循环体。

注意: 在一个带有条件和递增的for循环体中,调用continue语句后,迭代增量仍然会被计算求值。循环体继续像往常一样工作,仅仅只是循环体中的执行代码会被跳过。

*/

var puzzleInput = "great minds think alike"
//var puzzleOutput = ""
for character in puzzleInput.characters {
switch character {
case "a", "e", "i", "o", "u", " ":
continue
default:
puzzleInput.append(character) ;
}
}
print(puzzleInput) ;

/*
贯穿(Fallthrough)

Swift 中的switch不会从上一个 case 分支落入到下一个 case 分支中。相反,只要第一个匹配到的 case 分支完成了它需要执行的语句,整个switch代码块完成了它的执行。相比之下,C 语言要求你显示的插入break语句到每个switch分支的末尾来阻止自动落入到下一个 case 分支中。Swift 的这种避免默认落入到下一个分支中的特性意味着它的switch 功能要比 C 语言的更加清晰和可预测,可以避免无意识地执行多个 case 分支从而引发的错误。

如果你确实需要 C 风格的贯穿的特性,你可以在每个需要该特性的 case 分支中使用fallthrough关键字。下面的例子使用fallthrough来创建一个数字的描述语句。
*/

let integerToDescribe = 5
var description = "The number \(integerToDescribe) is"
switch integerToDescribe {
case 2, 3, 5, 7, 11, 13, 17, 19:
description += " a prime number, and also"
fallthrough
default:
description += " an integer."
}
print(description)

if #available(iOS 9, OSX 10.10, *) {
// 在 iOS 使用 iOS 9 APIs , 并且在 OS X 使用 OS X v10.10 APIs
} else {
// 回滚至早前 iOS and OS X 的API
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: