5.控制流
-
流程控制結(jié)構(gòu)
1.while與repeat while:區(qū)別在判斷循環(huán)條件之前,先執(zhí)?一次循環(huán)的代碼塊。然后重復(fù)循環(huán)直到條件為false while condition { statements } repeat { statements } while condition 2.Switch:1)不存在隱式的貫穿,break 不是必須的檐嚣;2)區(qū)間匹配,case 分支的模式也可以是一個(gè)值的區(qū)間;3)使用元組在同?個(gè) switch 語句中測(cè)試多個(gè)值居夹。元組中的元素可以是值,也可以是區(qū)間本冲。另外准脂,使?用下劃線( _ )來匹配所有可能的值;4)值綁定(Value Bindings),case 分?支允許將匹配的值聲明為臨時(shí)常量量或變量量,并且在 case 分?支體內(nèi)使?;5)Where,case 分?支的模式可以使?用 where 語句句來判斷額外的條件; 3.控制轉(zhuǎn)移語句 - continue:一個(gè)循環(huán)體?立刻停?止本次循環(huán)檬洞,重新開始下次循環(huán) - Break: 會(huì)?立刻結(jié)束整個(gè)控制流的執(zhí)?行行 - fallthrough(貫穿):fallthrough 關(guān)鍵字不會(huì)檢查它下一個(gè)將會(huì)落入執(zhí)行的 case 中的匹配條件,簡單地使代碼繼續(xù)連接到下一個(gè) case 中的代碼 4.帶標(biāo)簽的語句:標(biāo)簽(statement label)來標(biāo)記一個(gè)循環(huán)體或者條件語句句狸膏,對(duì) 于一個(gè)條件語句,你可以使?用 break 加標(biāo)簽的?式添怔,來結(jié)束這個(gè)被標(biāo)記的語句湾戳。對(duì)于一個(gè)循環(huán)語句,你可以使用 break 或者 continue 加標(biāo)簽澎灸,來結(jié)束或者繼續(xù)這條被標(biāo)記語句的執(zhí)行院塞。 labelName: while condition { statements }
-
guard
guard的執(zhí)行取決于一個(gè)表達(dá)式的布爾值。我們可以使用 guard 語句來 要求條件必須為真時(shí)性昭,以執(zhí)行 guard 語句后的代碼拦止。不同于 if 語句,一個(gè) guard 語句總 是有?個(gè) else 從句,如果條件不為真則執(zhí)?else 從句中的代碼汹族。 guard let name = person["name"] else { return } 如果條件不不被滿?足萧求,在 else 分?支上的代碼就會(huì)被執(zhí)?行行。這個(gè)分?支必須轉(zhuǎn)移控制以退出 guard 語句句出現(xiàn)的代碼段顶瞒。它可以?用控制轉(zhuǎn)移語句句如 return 夸政、 break 、 continue 或者 throw 做這件事榴徐,或者調(diào)?用?一個(gè)不不返回的?方法或函數(shù)守问,例例如 fatalError() 。
-
檢測(cè)API可用性
if #available(平臺(tái)名稱 版本號(hào), ..., *) { //APIs 可?用坑资,語句句將執(zhí)? } else { //APIs 不可用耗帕,語句句將不執(zhí)? }