在本文中,您將學習使用break語句來轉移程序的控制權。
使用循環(huán)或條件語句時,可能需要跳過循環(huán)內(nèi)的某些語句或立即終止循環(huán),而不檢查測試表達式
在這種情況下,將使用 break 和 continue語句。您將在下一章中了解 continue 語句。
break 語句停止執(zhí)行循環(huán) 或 switch語句。然后,它跳轉到loop或switch語句之后的下一條語句。
break語句的語法為:
break
for i in 1...5 { if i == 4 { break } print("i = \(i)") } print("The end")
運行該程序時,輸出為:
i = 1 i = 2 i = 3 The end
在上面的程序中,要迭代的序列的范圍是1到5。
i 的值設置為range(1)中的第一個數(shù)字,并在每次迭代時更新為范圍的下一個數(shù)字。
循環(huán)還包含一個if語句,表達式為 i==4。表達式在計算為 true 時(在第4次迭代時)執(zhí)行break語句,for-in循環(huán)終止。
然后,它跳到循環(huán)外面以打印 The End。
var currentLevel:Int = 1, finalLevel:Int = 2 var isLifeAvailable = true while (isLifeAvailable) { if currentLevel > finalLevel { print("游戲結束,沒有關卡了") break } //玩游戲,進入下一關 currentLevel += 1 print("下一關") } print("While循環(huán)之外")
運行該程序時,輸出為:
下一關 下一關 游戲結束,沒有關卡了 While循環(huán)之外
在上面的程序中,while 循環(huán)的測試表達式始終為true。
當 currentLevel 大于 finalLevel 時,將執(zhí)行if塊內(nèi)的break語句。然后,程序退出(終止)while循環(huán),并在循環(huán)之后執(zhí)行語句,即 print("While循環(huán)之外")..
for j in 1...2 { for i in 1...5 { if i == 4 { break } print("i = \(i)") } print("j = \(j)") }
運行該程序時,輸出為:
i = 1 i = 2 i = 3 j = 1 i = 1 i = 2 i = 3 j = 2
在上面的程序中,if i == 4 內(nèi)的break語句僅終止 for i in 1...5 內(nèi)部循環(huán)的執(zhí)行。 但是,它繼續(xù)執(zhí)行外循環(huán) for j in 1...2 。
但是,如果您也想要 break 外循環(huán) for j in 1...2呢?為此,我們在Swift中使用帶標簽的語句。
前綴為(label:Statement)形式的語句稱為帶標簽的語句。標簽是一個標識符,您可以稍后在break或continue語句中引用它。
在這里label是一個標識符。當break執(zhí)行語句時,它將終止內(nèi)的循環(huán)label,并且程序將立即跳轉到帶有標簽的語句之后的語句。
outerloop: for j in 1...2{ innerloop: for i in 1...5 { if i == 4 { break outerloop } print("i = \(i)") } print("j = \(j)") }
運行該程序時,輸出為:
i = 1 i = 2 i = 3
在以上程序中,有兩個標記的語句 outerloop: for j in 1...2 和 innerloop: for i in 1...5。
標簽名稱 outerloop 和 innerloop 可以與 break 語句一起使用。
該語句 break outerloop 終止兩個循環(huán)并結束程序。
如果您熟悉其他編程語言,例如C,C ++,Java等,則使用break語句終止switch語句。 但是在Swift中,switch語句在第一個匹配的switch用例完成后立即完成其執(zhí)行。 因此,在Swift的switch案例中添加break是可選的。要了解更多信息,請訪問Swift switch語句。