美文网首页
Swift基础 - 控制流

Swift基础 - 控制流

作者: 未知代码 | 来源:发表于2016-07-26 20:03 被阅读29次
    • 基本的if

        func demo() {
            let x = 10
            /**
             * 没有()
             * 必须要有{}:在很多公司的开发规范中,都是禁止不实用花括号的
             * 条件判断,C语言中,非零即真,在Swift中只有true和false
             */
            if x > 20 {
                print("大")
            }else {
                print("小")
            }
        }
    
    • 三目运算符

        // 在swift中三目运算符会用到很多
        // if语句一不小心就会写得丑爆了
        func demo1() {
            let a = 10
            a > 5 ? print("哈哈") : print("呵呵")
        }
    
    • if let

        func demo2() {
            // 冒号来指定变量类型
            let oName: String? = "张三"
            let oAge: Int? = 20
            
            if oName != nil && oAge != nil {
                print("Mr." + oName! + "--" + String(oAge!))
                
            }
            // if let 可以设置数值,进入分支后,name可以保证一定有值
            if let name = oName {
                print("Hi~" + name)
            }
            // 多值的设置,使用逗号分隔
            // 注意:if let语句中不能使用&& || 条件
            // if let中只要有任何一个条件为nil,就跳出循环
            if let name = oName, age = oAge {
                print("Hi~" + name + "年龄:" + String(age))
            }
        }
    
    • guard: 和if let刚好相反的指令

        func demo3() {
            let oName: String? = "张三"
            let oAge: Int? = 20
            
            guard let name = oName else {
                print("name 为 nil")
                return
            }
            guard let age = oAge else {
                print("age 为 nil")
                return
            }
            
            // 代码执行到此,name 和 age 一定有值
            // 在实际开发中,复杂的代码在条件判断之后
            // 使用guard会让嵌套层次少一层
            print("Hi \(name) -- \(age)");
        }
    
    • switch语句

        // OC中,switch只能判断整数
        func switchDemo() {
            // 如果开发时看到error type,要立即检查或编译,否则后续没有智能提示
            let number = "11"
            
            // option + click 是开发中最重要的组合键
            /**
             * 不需要break
             * 不在局限在对int的分支,可以对任意数据类型进行检测
             * 各个case之间不会穿透,如果有多个值,使用逗号分隔
             * 定义变量,不需要使用{}分隔作用域
             * 在switch中,必须涵盖所有条件,每一个case至少包含一条语句,不能空
             */
            switch number {
            case "10","11":
                let name = "老王"
                print("\(name)好")
            case "9":
                print("良好")
            default: break
    //            print("差")
            }
        }
    

    相关文章

      网友评论

          本文标题:Swift基础 - 控制流

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