Swift中的條件判別、循環、跳轉語句根底學習筆記。本站提示廣大學習愛好者:(Swift中的條件判別、循環、跳轉語句根底學習筆記)文章只能為提供參考,不一定能成為您想要的結果。以下是Swift中的條件判別、循環、跳轉語句根底學習筆記正文
一、引言
一種編程言語的弱小與否,很大水平上取決於其提供的順序流程控制方案,就如運用匯編言語完成復雜的順序流程是一件苦楚的事情。Swift中提供了許多弱小的流程控制語句,例如疾速遍歷for-in,while循環,repeat-while循環,switch選擇等,需求留意的是,在Swift2.2中,for(a;b;c)循環曾經被棄用掉,並且Swift中的Switch語句也愈加弱小,可以處置恣意數據類型。
二、for-in循環
配合范圍運算符,for-in循環可以用來執行確定次數的循環,示例如下:
for index in 1...5 { print(index) } //假如不需求獲取循環中每次的循環次數 可以運用如下方式 var sum=0; for _ in 1...3 { sum += 1 }
for-in循環也通常會用來遍歷數組,字典,集合等,示例如下:
var collection1:Array = [1,2,3,4] var collection2:Dictionary = [1:1,2:2,3:4,4:4] var collection3:Set = [1,2,3,4] for obj in collection1 { print(obj) } for (key , value) in collection2 { print(key,value) } for obj in collection3 { print(obj) }
三、while循環
while語句停止循環操作,直到循環條件為false為止,這類型的循環通常適用於循環次數不定的循環需求,while循環提供兩種語法格式,示例如下:
var i=0 //當i不小於10時跳出循環 while i<10 { print("while",i) i+=1 } //先停止一次操作 在判別循環條件 repeat { print("repeat while") } while i<10
四、if語句
if語句是順序開發中最常用的語句之一,經過if將判別一個條件能否成立來停止順序的流程控制,if語句通常會和else語句結合停止運用,示例如下:
var c:Int if 1>2 { c=1 }else if 1<0 { c=2 }else{ c=3 }
五、Switch語句
Switch語句作為開關選擇語句,用來處置一組值的分支選擇,Swift中的Switch語句格外弱小,相比於Objective-C,Swift中的Switch語句每個case後不需求運用break停止手動中綴,當代碼婚配到一個case後語句將自行中綴。用法示例代碼如下:
var charac:Character = "b" //運用switch語句停止字符分支判別 switch charac { case "a": print("chara is a") case "b": print("chara is b") case "c": print("chara is c") default ://default用於處置其他額定狀況 print("no charac") } //同一個case中可以包括多個分支 switch charac { case "a","b","c" : print("chara is word") case "1","2","3" : print("chara is num") default : print("no charac") } //在case中也可以運用一個范圍 var num = 3 switch num { case 1...3 : print("1<=num<=3") case 4 : print("chara is num") default : print("no charac") } //運用Switch語句停止元組的婚配 var tuple = (0,0) switch tuple { case (0,1): print("Sure") //也可以只對元組中的某個元素停止婚配 case (_,1): print("Sim") //也可以對元組中的元素停止范圍婚配 case(0...3,0...3): print("SIM") default: print("") } //停止數據綁定 switch tuple { case (let a,1): print(a) case (let b,0): print(b) //let(a,b) 與 (let a,let b)意義相反 case let(a,b): print(a,b) default: print("") } //關於停止了數據綁定的Switch語句 可以運用where關鍵字來停止條件判別 switch tuple { case (let a,1): print(a) case (let b,0): print(b) //let(a,b) 與 (let a,let b)意義相反 case let(a,b) where a==b: print(a,b) default: print("") }
六、跳轉語句
Swift中提供了5種跳轉語句,continue,break,fallthrough,return,throw。
1.continue:跳出到循環起始地位,直接開端下次循環。
2.break:break假如在循環語句中則是直接中綴循環,跳出,若是在Switch構造中,則立刻跳出Switch構造。
3.fallthrough語句需求和switch語句配合運用,在case中運用fallthrough,則會持續執行下一個case,需求留意,在下一個case中有停止數據綁定的,不可以運用fallthrough,示例如下:
var tuple = (0,0) switch tuple { case (0,0): print("Sure") //fallthrough會持續執行上面的case fallthrough //也可以只對元組中的某個元素停止婚配 case (_,0): print("Sim") fallthrough //也可以對元組中的元素停止范圍婚配 case(0...3,0...3): print("SIM") default: print("") }
4.return:return語句直接從函數中前往。
5.throw:throw用於拋出異常。
Swift還支持另一種語法,可以為while循環設置一個tip標簽,運用break和continue等關鍵字來停止流程的控制,示例如下:
var tmp = 0; tip:while tmp<10 { print("ccc") tmp+=1 switch tmp { case 3: break tip default: break } }
Swift2.0之後,提供了一種新的語法,guard-else,這也被稱作守護語句,只要當條件不滿足時,才執行else前面的代碼,示例如下:
var name = "HS" func nameChange(name:String) { guard name=="HS" else{ print(name) return } print("name is HS") } nameChange(name)
在開發中,函數中經常會需求反省傳入的參數能否契合規范,guard-else語句就是為這種需求所生,正如其名,它用於守護函數執行的准確度。
七、零碎版本反省
運用如下示例代碼停止零碎支持版本的反省:
if #available(iOS 9, *){ print("iOS 9") }