005--swift基础语法(逻辑分支)

来源:互联网 发布:多变量数据的统计描述 编辑:程序博客网 时间:2024/06/14 01:43

简单的分支 if语句

 // MARK: - 简单的分支    func demo(){        let x = 10        /**         1. 条件不需要()         2. 语句必须有{}          --很多公司的代码规范中,禁止不使用{}         */        if x > 5{            print("大了")        }else{            // Condition always evaluates to true            // 永远不会执行  - 编译器编译的时候,会做语法检查            print("小了");        }    }

三目的语法

func demo1(){        let x = 20        //三目的语法和OC的基本是一样的        x > 5 ? print("大了") : print("小了")        //分享,有印象就行        //`()`表示空执行        x > 5 ? print("大了") : ()    }
  func demo2(){        let x: Int? = 10        let y: Int? = 200        //强行解包有风险        print(x! + y!)    }

MARK: - ??

 func demo3(x:Int?,y:Int?)    {        /**         ?? 是一个简单的三目         - 如果有值  使用值         - 如果没有值,使用??后面的值代替         */        print((x ?? 0) + (y ?? 0))        let name:String? = "老王"        print((name ?? "")+"你好")        //??优先级“低”  在使用的时候最好加上()        print(name ?? ""+"你好")    }

if let/var 连用语法

//MARK: -if let/var 连用语法,目的是判断值    func demo4(){        let oName:String? = "老王"        let oAge:Int? = 10        if oName != nil &&  oAge != nil{            print(oName! + String(oAge!))        }        // if let 连用,判断对象的值是否为nil {}内一定有值,可以直接使用,不需要解包        // if var 连用,{}可以对值进行修改        if let name = oName,            let age = oAge{            //进入分支以后,name和age一定有值,不需要解包            //name 和 age 的作用域仅在{中}            print(name + String(age))        }    }

guard let 和 if let 刚好相反

//MARK: - guard 守卫 / 守护    //guard let 和 if let 刚好相反    func demo5(){        let oName:String? = "老王"        let oAge:Int? = 10        //guard let 守护一定有值,如果没有直接返回        guard let name = oName,            let age = oAge else {            print("姓名或者年龄为 nil")            return        }        // 代码执行至此,name 和 age 一定有值!        // 通常判断是否有值之后,会做具体的逻辑实现,通常代码多!        // 如果用 if let 凭空多了一层分支,guard是降低分支层次的办法        // guard 的语法是 Swift2.0 推出的        // guard 是Swift 2.0推出来的        print(name + String(age))    }

guard let & if let 使用技巧

 //guard let & if let 使用技巧    func demo6(name: String?,age: Int?){        if let name = name , let age = age {            //非空的name和age仅在花括号中有效            print(name + String(age))        }        //使用同名额变量接收值,在后续使用的都是非空值,不需要解包        //好处,可以避免起名字的烦恼        guard let name = name,let age = age else {            print("姓名或者年龄为nil")            return        }        print(name + String(age))    }
原创粉丝点击