Swift 之控制流

掌握

  • 基本的邏輯分支結(jié)構(gòu)
  • 可選項的三種判斷方式
  • ??,替換 nil 值,優(yōu)先級低
  • if let,{} 內(nèi)有效
  • guard let else, {} 后有效
  • swift 可以對任意類型的值進行分支

if

  • Swift 中沒有 C 語言中的非零即真概念
  • 在邏輯判斷時必須顯示地指明具體的判斷條件 true / false
  • if 語句條件的 ()可以省略但是 {} 不能省略
func demo1(num: Int) -> () { 
        if num > 10 { 
              print("大 \(num)") } 
        else { 
                print("小 \(num)") }
}

三目運算

  • ?? 是一個簡單的三目運算
  • 如果有值,就是原來的值
  • 如果沒有值,就用 ?? 后面的值代替
    一定要注意括號 '( )' 的使用

if let / var

        let oName: String? = "孫悟空"
        let oAge: Int? = 100
        
        //if let 連用,判斷對象的值是否為 nil ,{}內(nèi)有值,不需要解包
        //if var 連用,可在 {} 內(nèi)對值進行修改
        if let name = oName,
            let age = oAge {
            //進入分支后, name 和 age 一定有值,不需要進行解包
            print(name + String(age))
            // name 和 age 的作用域只在 {}內(nèi)
        }else{
            print("name 或 age 沒有值")
        }

guard let

  • 正好和 if let 相反,是蘋果在 Swift 2.0 之后推出的
  • 在程序編寫時,條件檢測之后的代碼相對是比較復(fù)雜的
  • 使用 guard 的好處
  • 能夠判斷每一個值
  • 在真正的代碼邏輯部分,省略了一層嵌套
        let oName: String? = "孫悟空"
        let oAge: Int? = 100
        
        guard let name = oName,
            let age = oAge else {
            print("name 或者 age 為nil")
        }
        print(name + String(age))

switch

  • switch不再局限于整數(shù)
  • switch可以針對任意數(shù)據(jù)類型進行判斷
  • 不再需要 break
  • 每一個 case后面必須有可以執(zhí)行的語句
  • 要保證處理所有可能的情況,不然編譯器直接報錯,不處理的條件可以放在 default分支中
  • 每一個 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
        }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容