if
- Swift 中沒有 C 語言中的非零即真 概念
- 在邏輯判斷時必須顯示地指明具體的判斷條件 true / false
- if 語句條件的 () 可以省略
- 但是 {} 不能省略
代碼示例
let num = 200
if num < 10 {
print("比 10 小")
} else if num > 100 {
print("比 100 大")
} else {
print("10 ~ 100 之間的數(shù)字")
}
三目運算
Swift 中的 三目運算保持了和 OC 一致的風格
x > 20 ? print("大了") : print("小了")
/** ()
表示執(zhí)行*/
x > 20 ? print("真的大了") : ()
適當?shù)剡\用三目黄痪,能夠讓代碼寫得更加簡潔
可選項條件判斷
初學 swift 一不小心就會讓 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 + " 學號: " + String(no))
}小結(jié)if let 不能與使用 &&粉铐、|| 等條件判斷 如果要增加條件每辟,可以使用 where子句
注意:where 子句沒有智能提示
guard 守衛(wèi)
guard 是與 if let 相反的語法,Swift 2.0 推出的
代碼示例
- 在程序編寫時,條件檢測之后的代碼相對是比較復雜的
- 使用 guard 的好處
- 能夠判斷每一個值
- 在真正的代碼邏輯部分才菠,省略了一層嵌套
switch 使用
switch 不再局限于整數(shù)
switch 可以針對任意數(shù)據(jù)類型進行判斷
不再需要 break
每一個 case后面必須有可以執(zhí)行的語句要保證處理所有可能的情況,不然編譯器直接報錯贡定,不處理的條件可以放在 default分支中
每一個 case中定義的變量僅在當前 case中有效赋访,而 OC 中需要使用 {}
示例
let score = "優(yōu)"
switch score {
case "優(yōu)": let name = "學生" print(name + "80~100分")
case "良": print("70~80分")
case "中": print("60~70分")
case "差": print("不及格")
default: break
}