Swift-標(biāo)簽語句

在Swift中叫倍,可以在其他循環(huán)和條件語句中嵌套循環(huán)和條件語句枣抱,以創(chuàng)建復(fù)雜的控制流結(jié)構(gòu)。 然而蚊惯,循環(huán)和條件語句都可以使用break語句來提前結(jié)束它們的執(zhí)行魂仍。 因此,有時(shí)需要明確關(guān)于哪個(gè)循環(huán)或條件語句希望break語句終止拣挪。 類似地擦酌,如果您有多個(gè)嵌套循環(huán),那么可以顯式地說明continue語句應(yīng)該影響哪個(gè)循環(huán)菠劝。

要實(shí)現(xiàn)這些目標(biāo)赊舶,您可以使用語句標(biāo)簽標(biāo)記循環(huán)語句或條件語句。 使用條件語句,可以使用帶有break語句的語句標(biāo)簽來結(jié)束帶標(biāo)簽語句的執(zhí)行笼平。 使用循環(huán)語句园骆,可以使用帶有break或continue語句的語句標(biāo)簽來結(jié)束或繼續(xù)執(zhí)行帶標(biāo)簽的語句。

標(biāo)簽語句通過將標(biāo)簽放置在與語句的介紹器關(guān)鍵字相同的行上寓调,后跟冒號(hào)來指示锌唾。 下面是一個(gè)while循環(huán)語法的例子,所有循環(huán)和switch語句的原理是相同的

*label name*: while *condition* {

*statements*

}
let finalSquare = 25
var board = [Int](repeating: 0, count: finalSquare + 1)
board[03] = +08; board[06] = +11; board[09] = +09; board[10] = +02
board[14] = -10; board[19] = -11; board[22] = -02; board[24] = -08
var square = 0
var diceRoll = 0


gameLoop: while square != finalSquare {
    diceRoll += 1
    if diceRoll == 7 { diceRoll = 1 }
    switch square + diceRoll {
    case finalSquare:
        // diceRoll will move us to the final square, so the game is over
        break gameLoop
    case let newSquare where newSquare > finalSquare:
        // diceRoll will move us beyond the final square, so roll again
        continue gameLoop
    default:
        // this is a valid move, so find out its effect
        square += diceRoll
        square += board[square]
    }
}
print("Game over!")

如果上面的break語句沒有使用gameLoop標(biāo)簽夺英,它會(huì)斷開switch語句晌涕,而不是while語句。 使用gameLoop標(biāo)簽可以清楚地知道應(yīng)該終止哪個(gè)控制語句痛悯。

當(dāng)調(diào)用continue gameLoop跳轉(zhuǎn)到循環(huán)的下一次迭代時(shí)余黎,不一定非要使用gameLoop標(biāo)簽。 游戲中只有一個(gè)循環(huán)载萌,因此對(duì)于哪個(gè)循環(huán)continue語句會(huì)產(chǎn)生影響惧财,沒有歧義。 但是扭仁,使用帶有continue語句的gameLoop標(biāo)簽沒有任何危害垮衷。 這樣做與標(biāo)簽在break語句旁邊的使用一致,有助于使游戲的邏輯更清晰地閱讀和理解乖坠。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末帘靡,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子瓤帚,更是在濱河造成了極大的恐慌描姚,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件戈次,死亡現(xiàn)場離奇詭異轩勘,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)怯邪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門绊寻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人悬秉,你說我怎么就攤上這事澄步。” “怎么了和泌?”我有些...
    開封第一講書人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵村缸,是天一觀的道長。 經(jīng)常有香客問我武氓,道長梯皿,這世上最難降的妖魔是什么仇箱? 我笑而不...
    開封第一講書人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮东羹,結(jié)果婚禮上剂桥,老公的妹妹穿的比我還像新娘。我一直安慰自己属提,他們只是感情好权逗,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著冤议,像睡著了一般斟薇。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上求类,一...
    開封第一講書人閱讀 51,573評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音屹耐,去河邊找鬼尸疆。 笑死,一個(gè)胖子當(dāng)著我的面吹牛惶岭,可吹牛的內(nèi)容都是我干的寿弱。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼按灶,長吁一口氣:“原來是場噩夢啊……” “哼症革!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鸯旁,我...
    開封第一講書人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤噪矛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后铺罢,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體艇挨,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年韭赘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了缩滨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡泉瞻,死狀恐怖脉漏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情袖牙,我是刑警寧澤侧巨,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站鞭达,受9級(jí)特大地震影響刃泡,放射性物質(zhì)發(fā)生泄漏巧娱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一烘贴、第九天 我趴在偏房一處隱蔽的房頂上張望禁添。 院中可真熱鬧,春花似錦桨踪、人聲如沸老翘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽铺峭。三九已至,卻和暖如春汽纠,著一層夾襖步出監(jiān)牢的瞬間卫键,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來泰國打工虱朵, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留莉炉,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓碴犬,卻偏偏與公主長得像絮宁,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子服协,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355

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

  • Swift 提供了類似 C 語言的流程控制結(jié)構(gòu)绍昂,包括可以多次執(zhí)行任務(wù)的for和while循環(huán),基于特定條件選擇執(zhí)行...
    窮人家的孩紙閱讀 703評(píng)論 1 1
  • Swift提供了多種控制流聲明偿荷。包括while循環(huán)來多次執(zhí)行一個(gè)任務(wù)窘游;if,guard和switch聲明來根據(jù)確定...
    BoomLee閱讀 1,950評(píng)論 0 3
  • 本章將會(huì)介紹 控制流For-In 循環(huán)While 循環(huán)If 條件語句Switch 語句控制轉(zhuǎn)移語句 continu...
    寒橋閱讀 723評(píng)論 0 0
  • [The Swift Programming Language 中文版]本頁包含內(nèi)容: Swift提供了多種流程控...
    風(fēng)林山火閱讀 568評(píng)論 0 0
  • 86.復(fù)合 Cases 共享相同代碼塊的多個(gè)switch 分支 分支可以合并, 寫在分支后用逗號(hào)分開。如果任何模式...
    無灃閱讀 1,367評(píng)論 1 5