控制流,同其他语言,if和switch用来进行条件判断操作,使用for-in、for、while和do-while处理循环操作。swift中条件的括号可以省略,语句块儿的括号必须存在。
var pass: NSMutableArray = []
var fail: NSMutableArray = []
let scores = [59,40,79,100,61,99]
for score in scores {
if score > 60 {
pass.addObject(score)
} else {
fail.addObject(score)
}
}
println(pass)
println(fail)
在swift中,条件的判断必须是布尔值,如下判断的方式是错的,在Object-c中可以直接判断对象是否为nil,swift却是错的。
错误的写法
var cell: UITableViewCell? = tableView.dequeueReusableCellWithIdentifier("cell") as? UITableViewCell
if !cell {
}
正确的写法
if cell != nil {
cell = UITableViewCell(style: UITableViewCellStyle.Default,reuseIdentifier: "cell") as UITableViewCell
}
swift中switch支持任意类型的数据以及各种比较操作,不再只是整数类型的相等。
let colorString: String = "red"
var color: UIColor? = nil
switch colorString {
case "red":
color = UIColor.redColor()
break
case "green":
color = UIColor.greenColor()
break
case "yellow":
color = UIColor.yellowColor()
break
default:
color = UIColor.blackColor()
}
可以用for-in遍历数组或者字典,遍历字典的时候需要两个变量来分别表示键值对。
let dict = [
"LiaoNing": "ShenYang","HeBei":"ShiJiazhuang",]
//println
for (province,city) in dict {
println("\(city) belong to \(province)")
}
使用while来做重复运算,知道条件不满足,循环结束。条件可以在开始也可以在结尾处。
var i = 0
while i < 10 { i = i + 1 }
do { i = i - 1 } while i > 0
在for循环中,也可以用..来表示范围,传统的for-in也可以,两者相同:
var count = 0
for i in 0..10 {
count = count + i
}
//same to
for var i = 0; i< 10; ++i {
count = count + i
}