控制流
使用if 和 switch来作为条件控制,使用for-in for while do-while 来构成循环。包装条件或者循环条件变量的圆括号可以省略,但是主体外的花括号是必须的
同时可以使用if let 来防止值得丢失。这些值是可选的,可选通过包含另一个值或者包含nil 来指明该值不存在。通过在类型后面添加问号(?)来标记一个值可选。
var optionalString: String? = "Hello"
optionalString == nil
var optionalName: String? = nil
//optionalName == nil
optionalName
var greeting = "Hello"
if let name = optionalName {
greeting = "Hello, \(name)"
} else {
greeting = "Welcom to beijing"
}
设置optionalName 为nil 会得到Hello
如果可选值为nil 则条件判断为false 花括号中的代码会被跳过。反之,可选值去包装并且赋给let 后面的常量,使得去包装的值可以在代码块内部访问。
去包装不必太纠结,可以认为去包装代表可选是有值的,而非nil,可以直接拿来使用。
switch 支持所有类型的数据,以及多种比较运算—没有限制为必须是整数,也没有限制为必须测试相等。
执行完匹配到得case后,程序会跳出switch,而不是继续执行下一个case,所以不需要在case的代码后面添加break来跳出switch。
使用for-in 来迭代字典中的元素,你需要提供一对蜜罐子来访问每一个键值对。
可以在循环中维持一个索引。一种方式是使用..表示一段索引区域,另一种方法是显示地指明初始值、判断条件 以及每次循环的增量。