美文网首页
Swift—分支

Swift—分支

作者: Windv587 | 来源:发表于2016-11-29 16:00 被阅读11次

*分支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")

''        }

相关文章

网友评论

      本文标题:Swift—分支

      本文链接:https://www.haomeiwen.com/subject/hsaapttx.html