美文网首页
Swift 之控制流

Swift 之控制流

作者: freemanIT | 来源:发表于2016-11-16 21:13 被阅读0次

    掌握

    • 基本的逻辑分支结构
    • 可选项的三种判断方式
    • ??,替换 nil 值,优先级低
    • if let,{} 内有效
    • guard let else, {} 后有效
    • swift 可以对任意类型的值进行分支

    if

    • Swift 中没有 C 语言中的非零即真概念
    • 在逻辑判断时必须显示地指明具体的判断条件 true / false
    • if 语句条件的 ()可以省略但是 {} 不能省略
    func demo1(num: Int) -> () { 
            if num > 10 { 
                  print("大 \(num)") } 
            else { 
                    print("小 \(num)") }
    }
    

    三目运算

    • ?? 是一个简单的三目运算
    • 如果有值,就是原来的值
    • 如果没有值,就用 ?? 后面的值代替
      一定要注意括号 '( )' 的使用

    if let / var

            let oName: String? = "孙悟空"
            let oAge: Int? = 100
            
            //if let 连用,判断对象的值是否为 nil ,{}内有值,不需要解包
            //if var 连用,可在 {} 内对值进行修改
            if let name = oName,
                let age = oAge {
                //进入分支后, name 和 age 一定有值,不需要进行解包
                print(name + String(age))
                // name 和 age 的作用域只在 {}内
            }else{
                print("name 或 age 没有值")
            }
    

    guard let

    • 正好和 if let 相反,是苹果在 Swift 2.0 之后推出的
    • 在程序编写时,条件检测之后的代码相对是比较复杂的
    • 使用 guard 的好处
    • 能够判断每一个值
    • 在真正的代码逻辑部分,省略了一层嵌套
            let oName: String? = "孙悟空"
            let oAge: Int? = 100
            
            guard let name = oName,
                let age = oAge else {
                print("name 或者 age 为nil")
            }
            print(name + String(age))
    

    switch

    • switch不再局限于整数
    • switch可以针对任意数据类型进行判断
    • 不再需要 break
    • 每一个 case后面必须有可以执行的语句
    • 要保证处理所有可能的情况,不然编译器直接报错,不处理的条件可以放在 default分支中
    • 每一个 case中定义的变量仅在当前 case中有效,而 OC 中需要使用 {}
            let score = "优"
            
            switch score {
            case "优":
                let name = "学生"
                print(name + "80~100分")
            case "良": print("70~80分")
            case "中": print("60~70分")
            case "差": print("不及格")
            default: break
            }
    

    相关文章

      网友评论

          本文标题:Swift 之控制流

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