2.控制流:
主要有三种类型的语句
if,switch和新增的guard
for,while
break,continue
关于if
语句里的条件不再需要使用()包裹了。
| 1 2 3 4 | let number = 23ifnumber < 10 {    print("The number is small")} | 
但是后面判断执行的的代码必须使用{}包裹住。
if 后面的条件必须为Boolean表达式
也就是不会隐式地与0进行比较,下面这种写法是错误的,因为number并不是一个boolean表达式,number != 0才是。
| 1 2 3 | int number = 0ifnumber{} | 
关于for
for循环在Swift中变得更方便,更强大。
得益于Swift新添加的范围操作符...与...<
我们能够将之前繁琐的for循环:
| 1 2 3 4 | for(int i = 1; i <= 5; i++){    NSLog(@"%d", i);} | 
改写为:
| 1 2 3 | forindex in1...5 {    print(index)} | 
虽然在《The Swift Programming Language》里面没有提到类似的用法,但是在Swift中我们也有优雅的方法办到。
| 1 2 3 | forindex instride(from: 1, through: 5, by: 2) {    print(index)}// through是包括5 | 
然后对字典的遍历也增强了.在Objective-c的快速枚举中我们只能对字典的键进行枚举。
| 1 2 3 4 | NSString *key;for(key insomeDictionary){     NSLog(@"Key: %@, Value %@", key, [someDictionary objectForKey: key]);} | 
而在Swift中,通过tuple我们可以同时枚举key与value:
| 1 2 3 4 | let dictionary = ["firstName":"Mango","lastName":"Fang"]for(key,value) indictionary{    print(key+" "+value)} | 
关于Switch:
Swich在Swift中也得到了功能的增强与安全性的提高。
不需要Break来终止往下一个Case执行
也就是下面这两种写法是等价的。
| 1 2 3 4 5 6 7 8 9 | let character = "a"switchcharacter{    case"a":        print("A")    break    case"b":        print("B")    breakdefault: print("character") | 
| 1 2 3 4 5 6 7 | let character = "a"switchcharacter{    case"a":        print("A")    case"b":        print("B")default: print("character") | 
这种改进避免了忘记写break造成的错误,自己深有体会,曾经就是因为漏写了break而花了一段时间去debug。
如果我们想不同值统一处理,使用逗号将值隔开即可。
| 1 2 3 4 | switchsome value to consider {casevalue 1,value 2:    statements} | 
在Swift中,Switch支持的类型大大的拓宽了。
这意味在开发中我们能够能够对字符串,浮点数等进行匹配了。
之前在OC繁琐的写法就可以进行改进了:
| 1 2 3 4 5 6 7 8 9 | if([cardName isEqualToString:@"Six"]) {    [self setValue:6];} elseif([cardName isEqualToString:@"Seven"]) {    [self setValue:7];} elseif([cardName isEqualToString:@"Eight"]) {    [self setValue:8];} elseif([cardName isEqualToString:@"Nine"]) {    [self setValue:9];} | 
| 1 2 3 4 5 6 7 8 9 10 | switchcarName{    case"Six":        self.vaule = 6    case"Seven":        self.vaule = 7    case"Eight":        self.vaule = 8    case"Night":        self.vaule = 9   } | 
原文:http://www.cnblogs.com/pengsi/p/5120310.html