if
- Swift 中沒有 C 語言中的非零即真 概念
- 在邏輯判斷時(shí)必須顯示地指明具體的判斷條件 true / false
- if 語句條件的 () 可以省略
- 但是 {} 不能省略
代碼示例
let num = 200
if num < 10 {
print("比 10 小")
} else if num > 100 {
print("比 100 大")
} else {
print("10 ~ 100 之間的數(shù)字")
}
三目運(yùn)算
Swift 中的 三目運(yùn)算保持了和 OC 一致的風(fēng)格
x > 20 ? print("大了") : print("小了")
/** () 表示執(zhí)行*/
x > 20 ? print("真的大了") : ()
適當(dāng)?shù)剡\(yùn)用三目,能夠讓代碼寫得更加簡潔
可選項(xiàng)條件判斷
初學(xué) swift 一不小心就會(huì)讓 if 的嵌套層次很深,讓代碼變得很丑陋
if let u = url {
if u.host == "www.baidu.com" {
let request = NSURLRequest(URL: u)
}
}使用 where 關(guān)鍵字,
if let u = url where u.host == "www.baidu.com" {
let request = NSURLRequest(URL: u)
}if let name = oName, let no = oNo {
print("姓名:" + name + " 學(xué)號: " + String(no))
}小結(jié)if let 不能與使用 &&、|| 等條件判斷 如果要增加條件,可以使用 where子句
注意:where 子句沒有智能提示
guard 守衛(wèi)
guard 是與 if let 相反的語法,Swift 2.0 推出的
代碼示例

- 在程序編寫時(shí),條件檢測之后的代碼相對是比較復(fù)雜的
- 使用 guard 的好處
- 能夠判斷每一個(gè)值
- 在真正的代碼邏輯部分,省略了一層嵌套
switch 使用
switch 不再局限于整數(shù)
switch 可以針對任意數(shù)據(jù)類型進(jìn)行判斷
不再需要 break
每一個(gè) case后面必須有可以執(zhí)行的語句要保證處理所有可能的情況,不然編譯器直接報(bào)錯(cuò),不處理的條件可以放在 default分支中
每一個(gè) case中定義的變量僅在當(dāng)前 case中有效,而 OC 中需要使用 {}
示例
let score = "優(yōu)"
switch score {
case "優(yōu)": let name = "學(xué)生" print(name + "80~100分")
case "良": print("70~80分")
case "中": print("60~70分")
case "差": print("不及格")
default: break
}