if语句
var i = 10
if i > 0 {
print("OK")
}
- 总结
- Swift 中没有 C 语言中的非零即真概念
- 在逻辑判断时必须显示地指明具体的判断条件
- if 语句条件的 () 可以省略
- 但是 {} 不能省略
switch case语句
var a = 10
switch a {
case 10:
print("a = 10")
case 20:
print("a = 20")
default:
print("nothing")
}
let name = "Jerry"
switch name {
case "Jerry":
print("Jerry")
case "John":
print("John")
case "Andy":
break
default:
print("default")
}
- 总结
- switch后的()可以省略,在case中定义变量可以不加大括号
- 可以不写break, 不会穿透执行
- 一定要写default, 并且default的位置只能在最后
while语句
var a = 10
while a > 0 {
print("a = \(a)")
a -= 1;
}
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 ?? "哈哈")")
for循环
for var i = 0; i < 10; i++ {
}
for i in 0..<10 {
print(i)
}
for i in 0...10 {
print(i)
}
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)")
}