条件和分支语句

if语句

var i = 10

if 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 = 10
while a > 0 {
    print("a = \(a)")
    a -= 1; // ++ 和 -- 在Swift中已经废除
}

repeat while语句

// 相当于do while
var m = 1
repeat {
    m = m * 2
    print(m)
} while m < 100

三目运算符

// Swift 中的三目运算保持了和 OC 一致的风格
let result = a > b ? a : b
print("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)
}

// 单侧区间运算符:一个包含了数组从索引 2 到结尾的所有值的区间
let nameArray = ["Jerry", "John", "Jack", "Jason"]
for index in nameArray[2...] {
    print(index)
}

// 如果不关心循环的索引,可以使用 _ 忽略
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)")

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值