*分支if*
* Swift 提供了类似 C 语言的流程控制结构(if/switch/for/while/dowhile)
* 只能以Bool作为条件语句
* 条件语句不需要加()
* {}不能省略
* swift中if分支的模式可以使用where语句来判断额外的条件
* 其它跟OC中if一样
let intValue = 10
'' if intValue > 2{
'' print("yes")
'' }
'' //用where额外判断
'' let testValue: Int? = 10
'' if let d = testValue where testValue > 9{
'' print"满足了"
'' }
*Bool类型*
* c语言和OC语言没有真正的BOOL类型
* OC语言的Bool类型YES/NO是`typedef signed char BOOL;`非0即真
* swift引入了真正的BOOL类型true / false
* swift中逻辑只有两个 true / false
* 如果你在需要使用BOOL类型的地方使用了非布尔值,swift的类型安全机制会报错
if intValue = 10 { } //这种可能将判断写错,swift有效的避免了这种情况
'' if intValue == 10 {
'' print(intValue)
'' }
*三目运算符*
* 三目运算符的特殊在于它是有三个操作数的运算符,它简洁地表达根据问题成立与否做出二选一的操作
* 格式: 问题 ?答案一 : 答案二
* 提示 : swift中三目运算符用得很多
* 注意 :过度使用三目运算符会使简洁的代码变的难懂。我们应避免在一个组合语句中使用多个三目运算符
let result = intValue > 20 ? 20 : 19
*分支switch*
* OC中case后面必须加上break否则会贯穿,swift不用
* swift中如果想使用贯穿必须使用 fallthrough
* OC中可以不写default,swift中只有满足所有条件才能忽略default
* OC中default可以随便放,swift不可以
* OC中case中定义变量需要加大括号,否则作用域混乱,swift不用加大括号
* swift的switch可以判断区间和元祖
* swift中case分支的模式可以使用where语句来判断额外的条件
注意:swift中每个case分支都必须包含至少一条语句, 不像 C 语言里的switch语句,在 Swift 中,switch语句不会同时匹配多个条件
'' //OC中写法
'' switch(rank){
'' case "A":
'' case "B":
'' NSLog(@"还不错")
'' break
'' case "C":
'' NSLog("差")
'' break
'' }
'' //swift 写法 default不能随便放,只能放在最后
'' var rank = "A"
'' switch rank{
'' // default:
'' // print("没有评级")
'' case "A", "B":
'' var num = 10
'' print("优")
'' fallthrough
'' case "C":
'' print("差")
'' default:
'' print("没有评级")
'' }
*匹配区间*
* 闭区间操作符 . . . 包含头包含尾
* 半开区间操作符 . .< 包含头不包含尾
'' var age1 = 10
'' switch age1 {
'' case 0:
'' print("0")
'' case 1..<18:
'' print("未成年")
'' case 18..<30:
'' print("成年")
'' default:
'' print("老年人")
'' }
'' //: 匹配元祖
'' var point = (50, 50)
'' switch point{
'' // 只有where后面的条件表达式为真才赋值并执行case后的语句
'' case (0, 0):
'' print("原点")
'' case (50, 50):
'' print("中点")
'' default:
'' print("Other")
'' }
'' //: 值绑定(Value Bindings)
'' switch point{
'' // 只有where后面的条件表达式为真才赋值并执行case后的语句
'' case var(x, y) where x > y:
'' print("\(x) > \(y)")
'' case var(x, y) where x < y:
'' print("\(x) < \(y)")
'' default:
'' print("Other")
'' }
网友评论