条件和分支语句

来源:互联网 发布:怎样去掉mac上win 编辑:程序博客网 时间:2024/06/05 17:10

if语句

var i = 10if i > 0 {    print("OK")}
  • 总结
  • Swift 中没有 C 语言中的非零即真概念
  • 在逻辑判断时必须显示地指明具体的判断条件
  • if 语句条件的 () 可以省略
  • 但是 {} 不能省略

switch case语句

        // 1.        var a = 10  // Int        switch a {        case 10:            print("a = 10")        case 20:            print("a = 20")        default:            print("nothing")        }        // 2.可以针对任意类型进行分支,不在局限于整数        let name = "Jerry"        switch name {        case "Jerry":            print("Jerry")        case "John":            print("John")        case "Andy":            break // 如果case里面没有执行任何代码,需要添加break        default:            print("default")        }
  • 总结
  • switch后的()可以省略,在case中定义变量可以不加大括号
  • 可以不写break, 不会穿透执行
  • 一定要写default, 并且default的位置只能在最后

while语句

var a = 10while a > 0 {    print("a = \(a)")    a -= 1; // ++ 和 -- 在Swift中已经废除}

三目运算符

// Swift 中的三目运算保持了和 OC 一致的风格let result = a > b ? a : bprint("result is \(result)")

双??表达式

// 双??表达式的优先级比较低,使用的时候最好加上小括号()var name: String? = "Jerry Yao"name = nil// 如果变量有值,则取其值,否则取问号后面的值print("name = \(name ?? "哈哈")") // name = 哈哈

for循环

// 在swift3.0中,这种写法已经不支持了// i++ --i这种写法也不再支持for var i = 0; i < 10; i++ {      }// 遍历 [0, 10)for i in 0..<10 {    print(i)}// 遍历 [0, 10]for i in 0...10 {    print(i)}// 如果不关心循环的索引,可以使用 _ 忽略for _ in 0...10 {    print("hello")}// 反序循环for i in (0..<10).reversed() {    print(i)}

if let/var和guard let语句

    override func viewDidLoad() {        super.viewDidLoad()        var name: String? = "Jerry Yao"//        name = nil        // if let语句, 判断非空        if let mName = name {            print("yeah! \(mName)")        }        // guard let语句,如果为nil则return        guard let yourName = name else {            print("haha") // 如果name为nil,则执行该语句            return        // 必须要return        }        // name不为nil,则继续往下执行        print("valid name, \(yourName)")    }
原创粉丝点击