swift 4.x 控制流 使用 if 和 switch 來進(jìn)行條件操作,使用 for-in 、 for 、 while 和 repeat-while 來進(jìn)行循環(huán)。

     /*
     if、for-in語句的結(jié)合使用
     */
    let array = [85,52,52,5266,52363,63330,8602,8222]
    
    var numbers1  = [Any]()
    var numbers2 = [Any]()
    
    var number = 0
    for num in array {
        
        if num > 100{
            
            numbers1.append(num)
            
            number += 3
            
        }else{
            
            numbers2.append(num)
            
            number -= 1
            
        }
        
    }

    print("numbers1:\(numbers1),numbers2:\(numbers2),number:\(number)")


  /*
     if語句的使用
     */
    let optionalString: String? = "Hello"
    /*
     在 if 語句中,條件必須是一個(gè)布爾表達(dá)式
     */
    print(optionalString != nil)
    print(optionalString == nil)

   /*
     可以一起使用 if 和 let 來處理值缺失的情況
     如果變量的可選值是 ,條件會(huì)判斷為 ,大括號(hào)中的代碼會(huì)被跳過。如果不是 ,會(huì)將值解包并賦給 后面的常量,這樣代碼塊中就可以使用這個(gè)值了
     */
    let optionalName: String? = nil
    var greeting = "Hello!"
    if let name = optionalName {

        //當(dāng)optionalName的值不為nil的話,會(huì)執(zhí)行這個(gè)代碼塊
        greeting = "Hello, \(name)"

    }
    else{

        greeting = "Hello"

    }

    print(greeting)
    
    /*
     另一種處理可選值的方法是通過使用 ?? 操作符來提供一個(gè)默認(rèn)值
     */
    let nickName : String? = nil
    let fullName :String = "John Appleseed"

    //當(dāng)nickName的值為nil的時(shí)候,會(huì)取fullName的值
    let string = "Hi \(nickName ?? fullName)"

    print(string)


     /*
     switch語句 支持任意類型的數(shù)據(jù)以及各種比較操作  跟3.0不一樣,4.0必須加上break
     */
    
    let title = "我在學(xué)習(xí)swift"
    
    switch title {
    case "123":
        
        let string = "swift是一門很棒的編程語言"
        
        print("\(title),\(string)")
        
        break
        
    case let x where x.hasSuffix("f")://let將匹配等式的值賦給常量 x     后綴
        
        print("\(x)")
        
        break
        
    case let x where x.hasPrefix("我")://let將匹配等式的值賦給常量 x     前綴
        
        print("\(x)")
        
        break
        
    default:
        
        

        break
        
        
        
        
    }
    
}

     /*
     for-in 來遍歷
     */
    let interestingNumbers = [
        "Prime": [2, 3, 5, 7, 11, 13],
        "Fibonacci": [1, 1, 2, 3, 5, 8],
        "Square": [1, 4, 9, 16, 25],
        ]
    var largest = [Any]()
    
    
    
    //需要兩個(gè)變量來表示每個(gè)鍵值對。字典是一個(gè)無序的集合,所以他們的鍵和值以 任意順序迭代結(jié)束。
    for (kind , numbers) in interestingNumbers {
        
        for number in numbers{
            
            largest.append(number)
            
        }
        
        print(kind)
        
    }
    

    print("largest:\(largest)")


       /*
     while 來重復(fù)運(yùn)行一段代碼直到不滿足條件
     */
    var n = 2
    while n < 100 {
        
        
        n = n * 2
        
        print(n)
        

    }
    
}

      /*
     repeat-while語句
     循環(huán)條件也可以在結(jié)尾,保證能至少循環(huán)一次
     */
    var m = 2
    repeat {
        
        m=m * 2
        
    } while m < 100
    
    print(m)

   /*
     使用 ..< 創(chuàng)建的范圍不包含上界,如果想包含的話需要使用 ...
     */
    var total = 0
    for i in 0..<4 {
        
        total += i
        
        print(total)
        
    }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容