Swift送殻陣崙
<貧匯准
和匯准>
Swift戻工阻侭嗤c窃囂冱議陣崙送潤更。淫凄for才while儉桟栖峇佩匯倖販暦謹肝?if才switch囂鞘栖峇佩鳩協議訳周和音揖議蛍屶議旗鷹?break才continue購囚忖嬬繍塰佩送殻廬欺低旗鷹議総匯倖泣貧。
茅阻C囂冱勧由議for-condition-increment儉桟?Swift紗秘阻for-in儉桟?嬬厚紗否叟議演煽arrays, dictionaries, ranges, strings吉凪麿會双窃侏。
Swift議switch囂鞘匆曳C囂冱議勣膿寄載謹。 Swift嶄switch囂鞘議case囂鞘音氏“渠秘”和匯倖case?閲窒阻c囂冱梨芝亟break囂鞘恢伏議危列。 case辛參謄塘俯謹音揖議庁塀?淫凄袈律謄塘?圷怏謄塘賜宀砺公峺協議窃侏。謄塘峙壓匯倖case訳周和辛參鰯協欺匝扮械楚賜延楚?辛參壓case議旗鷹翠嶄聞喘?鹸墫謄塘訳周和辛參燕幣葎耽匯倖case議訳周。
和中議箭徨嬉咫阻燕嶄議5倖圷殆
壓貧中議箭徨嶄?index頁匯倖械楚?万議峙壓耽肝亨旗議蝕兵扮徭強兜兵晒?聞喘念音氏瓜蕗苧?祥頁酒汽議繍凪咨來蕗苧追秘儉桟議蕗苧?音俶勣聞喘let栖蕗苧購囚忖。
聞喘for-in儉桟栖亨旗竃array嶄議耽匯倖??
茅阻電双才忖灸?for-in儉桟珊嬬亨旗忖憲堪嶄議Character?忖憲??
儉桟梓孚和中送殻峇佩?
宸頁械需議while侘塀?
5-1
嗄老議号夸頁宸劔議?
宸倖嗄老医喇匯倖Int侏方怏婢幣竃栖。万議寄弌児噐finalSquare械楚?乎械楚喘栖兜兵晒方怏旺壓岻朔殊臥覆旋訳周。嗄老医兜兵晒葎26倖峙葎0議Int侏方象?音頁25倖?蛍艶了噐0崛25議沫哈??
螺社蝕兵噐圭翠0?祥壓嗄老医恣和叔議翌中。及匯和誘濵頁委螺社揮欺嗄老井戦中?
壓辧濵徨朔?螺社功象diceRoll卞強圭翠。嗤辛嬬濵徨議方氏斑螺社階狛圭翠25?宸劔祥麻嗄老潤崩。葎阻宙峰宸倖魁尚?旗鷹壓?board[square]耶紗峙參念枠殊臥square議峙頁倦富噐board方怏議count奉來?泌惚頁夸功象孖嗤議square峙繍螺社貧卞賜和卞欺屢哘杢徨賜敷。
泌惚音峇佩宸倖殊臥?board[square]氏辛嬬晦編函誼board方怏順尫翌議峙?擬崑埆順。泌惚square孖壓吉噐26?旗鷹繍晦編殊臥board[26]?宸倖峙階狛阻方怏尫崙。
孖嗤議While儉桟峇佩欺恷朔?氏殊臥儉桟訳周心儉桟頁倦氏壅肝峇佩。泌惚螺社厮将卞強賜宀圭翠階狛25?儉桟訳周氏柴麻葎false?嗄老潤崩。
壓宸倖箭徨嶄聞喘While儉桟頁曳熟栽癖議?咀葎嗄老議海業壓儉桟議蝕遊音苧鳩?斑儉桟匯岷峇佩岷欺蒙協議諾怎訳周竃孖。
和中頁do-while議械需侘塀:
嗄老議蝕兵?螺社壓“圭翠0”。 board[0]喟垓吉噐0?短嗤艶議孔嬬?
儉桟訳周(while square < finalSquare)効岻念箭徨匯劔?徽頁宸肝氏壓及匯肝儉桟議潤硫嘉柴麻。do-while儉桟議潤更曳while儉桟厚癖栽云箭。貧中do-while嶄?壓儉桟訳周鳩範square挽症壓嗄老医戦中朔?square += board[square]氏岷俊序佩柴麻?音駅序佩方怏埆順議殊臥。
Swift戻工曾嶽圭塀栖耶紗旗鷹議蛍屶?械需議if才switch囂鞘。?堡撮s?if囂鞘栖柴麻峪嗤富楚蛍屶議議訳周?遇Switch喘噐厚鹸墫議秤趨?蒙艶頁壓庁塀謄塘議扮昨嗤廁噐僉夲栽癖議旗鷹蛍屶栖峇佩。
if囂鞘辛參戻工匯倖屈僉匯議囂鞘?械需議?else clause?喘噐輝if訳周葎false扮。宸乂囂鞘喘else購囚忖栖陣崙?
低辛參聞喘謹倖if囂鞘?崧宸劔奐紗訳周?
恷朔議else訳周頁辛僉議?咀緩泌惚音俶勣亟頼屁辛參肇渠。
恷酒汽議侘塀?switch曳熟匯倖峙斤哘議匯倖賜宀謹倖屢揖侘塀議峙?
耽匯倖switch囂鞘脅駅倬exhaustive?峋聾??旺拝耽匯倖侭深打窃僉辛嬬議峙脅駅倬謄塘switch嶄議匯倖case。泌惚音嬬斤哘欺switch嶄議侭嗤case議峙?辛參協吶倖潮範議僉函匂栖盾畳。僉函匂喘default購囚忖栖燕幣?駅倬竃孖壓恷朔。
和中議箭徨喘switch囂鞘謄塘阻匯倖弌亟忖憲?someCharacter?
case嶄旺音俶勣亟貧侭嗤凪麿議哂囂忖銚?侭參switch戻工阻default栖謄塘凪麿侭嗤音頁圷咄匆音頁絹咄議秤趨。宸劔議訳周隠屬阻switch短嗤凖息。
耽倖case議麼孤淫凄峪富匯倖辛峇佩議囂鞘。和中宸劔亟頁涙丼議?咀葎及匯倖case頁腎議?
泌惚嗤謹倖謄塘斤嵆議?辛參喘矯催侯蝕?崧和中宸劔亟撹謹佩?
和中箭徨嶄聞喘匯倖泣恫炎?x,y??喘圷怏侏(Int, Int)栖燕幣?辛參壓和中議夕嶄蛍窃竃栖?
Switch囂鞘畳協阻泣頁倦壓圻泣?0?0?貧?壓碕弼議x已貧?壓拡弼議y已貧?壓清弼4X4議裳侘葎嶄伉議圻泣坪?賜宀壓裳侘翌。
嚥C囂冱音揖?Swift塋俯謹倖switch議case深打屢揖議峙。糞縞貧泣(0,0)嬬謄塘箭徨嶄侭嗤議膨倖case。隼遇?泌惚謹倖謄塘竃孖?及匯倖謄塘撹孔議case繍瓜聞喘。泣?0?0?嬬遍枠謄塘case?0?0??侭參凪麿侭嗤議case繍瓜策待。
和中議箭徨嗤匯倖泣?x,y??喘圷怏侏(Int,Int)栖燕幣?壓夕嶽婢幣竃栖泌和:
switch囂鞘栖鳩協泣頁倦壓碕弼x已貧?壓拡弼y已?賜宀凪麿仇圭。
眉倖switch議case脅蕗苧阻媼了械楚x才y?壙扮貫anotherPoint媼喘匯倖賜曾倖圷怏峙。及匯倖case戦?case (let x, 0)?謄塘公販吭匯倖y峙葎0?旺蛍塗泣議x峙公匝扮械楚x議泣。屢貌仇?及屈倖case?case (0, let y)?謄塘公匯倖x峙葎0?蛍塗泣議y峙公匝扮械楚y議泣。
匯稀匝扮械楚瓜蕗苧?麿断繍壓case議旗鷹翠嶄聞喘。宸戦麿断繍恬葎酒亟壓println痕方嶄嬉咫竃栖。
廣吭switch囂鞘短嗤default議case。恷朔匯倖case?case let (x, y)?蕗苧阻淫根曾倖媼了械楚辛參謄塘販採峙議圷怏。恬葎潤惚?万謄塘販採辛嬬議峙?音俶勣default囂鞘switch祥怎校頼胆阻。
貧中議箭徨嶄?蕗苧x才y喘阻購囚簡let?咀葎宸戦音俶勣壓case議旗鷹粁戦個延万断議峙。隼遇?麿断辛參喘延楚栖旗紋?聞喘var購囚簡。泌惚喘阻延楚?夸氏幹秀匝扮延楚旺兜兵晒葎栽癖議峙。販採斤延楚議個延脅峪氏唹峒case旗鷹粁嶄議何蛍。
switch囂鞘登僅阻泣頁倦壓駄弼弍?貧拝x == y?賜壓從弼弍?貧拝x == -y?賜脅音頁。
眉倖switch議case蕗苧阻媼了械楚x才y?匝扮媼喘point嶄圷怏峙。宸乂械楚恬葎where徨鞘議匯何蛍?喘栖幹秀強蓑議標僉。峪嗤輝where徨鞘議訳周潤惚葎true?Switch議case夸氏謄塘孖嗤point議峙。
祥崧壓念匯倖箭徨嶄?恷朔議case謄塘侭嗤辛嬬議峙?侭參音俶勣default。
control, break才fallthrough壓和猟嶄峋盾。reture囂鞘壓Functions嶄宙峰。
宸嶽蒙來辛參喘噐switch戦謄塘?賜策待?匯倖賜謹倖case。咀葎Swift議switch頁博訟議?旺拝音塋俯嗤腎case議?嗤扮昨勣風嶷議謄塘才葎阻聞吭夕苧?垓璜歠堊?case。輝switch謄塘阻break囂鞘?case嶄議break嬬岷俊嶮峭屁倖switch。
壓switch囂鞘峇佩頼撹朔?箭徨戦喘阻辛僉侏鰯協栖鳩協峙頁倦瓜窟孖。possibleIntegerValue延楚嗤匯倖咨來議兜兵峙nil?醤嗤辛僉侏議單泣。峪嗤壓念膨倖case嶄?輝possibleIntegerValue瓜験阻糞縞議峙辛僉鰯協嘉氏撹孔。
壓貧中箭徨嶄双竃侭嗤辛嬬議忖憲峙音湊糞縞?侭參default嬬戻工匯倖短販採忖憲瓜僉嶄秤趨和議否匂。宸議default音喘峇佩販採荷恬?峪亟倖酒汽議break。匯稀default瓜謄塘?break囂鞘羨軸嶮峭switch?旺写偬峇佩 if let囂鞘。
泌惚低鳩糞俶勣C塀議渠秘蒙來?低辛參聞喘fallthrough購囚簡。和中議箭徨喘fallthrough栖幹秀匯粁宙峰方忖議猟云?
泌惚integerToDescribe音効殆方燕嶄販採匯?謄塘?椎功云祥音氏謄塘switch議及匯倖case。宸戦中短嗤凪麿議case?咀緩integerToDescribe岷俊序秘default否匂。
壓switch峇佩頼撹朔?方忖議宙峰喘println痕方嬉咫竃栖。壓云箭嶄?5頁屎鳩議基宛。
廣吭?fallthrough購囚忖音殊臥case戦議訳周?氏岷俊渠秘和匯倖case。fallthrough酒汽議斑旗鷹峇佩欺和匯倖case?賜default?議旗鷹翠嶄?才炎彈C囂冱議蒙來匯劔。
葎阻恂欺宸匯泣?低辛參喘statement label栖炎芝儉桟賜switch?嚥break賜continue囂鞘匯軟聞喘宸倖炎禰栖嶮峭賜写偬炎芝囂鞘議峇佩。
炎禰囂鞘恬葎哈擬購囚簡壓炎禰議揖匯佩?朔中効彭丹催“?”。 宸戦嗤匯倖喘阻乎憲催議while儉桟箭徨?侭嗤議儉桟才switch脅頁屢揖議。
泌惚濵徨揮低階狛阻25催圭翠?低駅倬嶷仟卿濵徨岷欺屎挫丘器25催圭翠。
嗄老医才貧猟嶄議匯劔
5-6
延楚 finalSquare, board, square, diceRoll議兜兵晒脅効念猟匯劔?
While儉桟議訳周頁while square != finalSquare?吭房頁低駅倬鯛壓25催圭翠貧?
揖劔勣廣吭?輝距喘continue gameLoop栖柳欺和匯倖亨旗儉桟嶄音頁駅倬聞喘gameLoop炎禰。咀葎宸戦峪嗤匯倖儉桟悶?音氏鞭欺凪麿儉桟悶議唹峒。隼遇?喘阻gameLoop炎禰匆短焚担音挫。宸劔恂隠隔嚥break都円議炎禰由匯?嗤廁噐斑嗄老貸辞嬬厚紗賠漣堋響才尖盾。
茅阻C囂冱勧由議for-condition-increment儉桟?Swift紗秘阻for-in儉桟?嬬厚紗否叟議演煽arrays, dictionaries, ranges, strings吉凪麿會双窃侏。
Swift議switch囂鞘匆曳C囂冱議勣膿寄載謹。 Swift嶄switch囂鞘議case囂鞘音氏“渠秘”和匯倖case?閲窒阻c囂冱梨芝亟break囂鞘恢伏議危列。 case辛參謄塘俯謹音揖議庁塀?淫凄袈律謄塘?圷怏謄塘賜宀砺公峺協議窃侏。謄塘峙壓匯倖case訳周和辛參鰯協欺匝扮械楚賜延楚?辛參壓case議旗鷹翠嶄聞喘?鹸墫謄塘訳周和辛參燕幣葎耽匯倖case議訳周。
For Loops - For儉桟
for儉桟喘栖謹肝峇佩匯怏囂鞘 ?Swift戻工阻曾嶽侘塀?- for-in峇佩袈律?會双?鹿栽賜雫方吉耽匯?嶄議匯怏囂鞘
- for-condition-increment峇佩匯怏囂鞘岷欺鳩協議訳周竃孖?宥械壓耽匯倖儉桟潤崩念弓奐匯倖柴方
For-In
聞喘for-in栖演煽鹿栽嶄議?朕?曳泌方怏議袈律?電双嶄議?賜宀忖憲堪嶄議忖憲。和中議箭徨嬉咫阻燕嶄議5倖圷殆
for index in 1...5 {
println("\(index) times 5 is \(index * 5)")
}
// 1 times 5 is 5
// 2 times 5 is 10
// 3 times 5 is 15
// 4 times 5 is 20
// 5 times 5 is 25
箭徨嶄瓜亨旗鹿栽議?頁匯倖撃液袈律坪貫1欺5議方忖?祥頁貧中炎紛葎撃液袈律荷恬憲議 (...)。 Index議峙瓜譜葎及匯倖方象議袈律(1), 隼朔峇佩儉桟嶄議囂鞘。壓云箭嶄?儉桟峪淫根阻匯鞘三?功象index孖嗤議峙嬉咫5肝核隈燕議匯倖潤惚。輝峇佩頼囂鞘岻朔?index議峙瓜厚仟葎袈律嶄議及屈倖峙,隼朔壅肝距喘println痕方。宸倖荷恬氏匯岷隔偬?岷欺袈律議嶮泣。壓貧中議箭徨嶄?index頁匯倖械楚?万議峙壓耽肝亨旗議蝕兵扮徭強兜兵晒?聞喘念音氏瓜蕗苧?祥頁酒汽議繍凪咨來蕗苧追秘儉桟議蕗苧?音俶勣聞喘let栖蕗苧購囚忖。
泌惚音俶勣袈律議峙?辛參喘和皿?紋旗延楚兆栖策待宸乂峙:廣吭?Index械楚叙叙贋壓噐儉桟議袈律坪。泌惚低?勣壓儉桟岻朔誼欺index議峙?賜宀?勣聞喘index議峙恬葎延楚?低駅倬壓儉桟岻念蕗苧万。
let base = 3
let power = 10
var answer = 1
for _ in 1...power {
answer *= base
}
println("\(base) to the power of \(power) is \(answer)")
// prints "3 to the power of 10 is 59049"
箭徨嶄柴麻曾方屢核?壓云箭嶄?3核參10?。核隈兜兵峙葎1?耽肝核3?核10肝?聞喘磯撃液儉桟貫0欺9。宸倖柴麻音俶勣宥狛儉桟栖岑祇耽倖柴方匂議峙--叙叙峪俶勣峇佩屎鳩議儉桟肝方。和皿?荷恬憲 _ (喘噐紋旗儉桟延楚)繍策待渠倖悶峙?旺拝壓耽匯肝儉桟亨旗豚寂音公孖嗤議延楚戻工恵諒。聞喘for-in儉桟栖亨旗竃array嶄議耽匯倖??
let names = ["Anna", "Alex", "Brian", "Jack"]
for name in names {
println("Hello, \(name)!")
}
// Hello, Anna!
// Hello, Alex!
// Hello, Brian!
// Hello, Jack!
揖劔辛參亨旗忖灸栖恵諒凪嶄議囚峙斤。輝亨旗忖灸扮戦中議耽匯倖?脅參?key,value?圷怏議侘塀栖卦指?低辛參壓for-in議儉桟悶嶄蛍盾 (key, value) 圷怏議撹埀?委撹埀恬葎?墅埣跗蔞蝶A神簡荒叩O唾羸闓咤w峙箋?key瓜蛍盾葎animalName議械楚?忖灸議峙瓜蛍盾兆葎legCount議械楚?
let numberOfLegs = ["spider": 8, "ant": 6, "cat": 4]
for (animalName, legCount) in numberOfLegs {
println("\(animalName)s have \(legCount) legs")
}
// spiders have 8 legs
// ants have 6 legs
// cats have 4 legs
Dictionary嶄議?議亨旗乏會辛嬬効万断峨秘扮議乏會音匯劔。咀葎Dictionary嶄議坪否云嵎貧頁涙會議?侭參亨旗万断音嬬隠屬殊沫扮議乏會。厚謹購噐電双才忖灸議坪否峋需 Collection Types嫗准。茅阻電双才忖灸?for-in儉桟珊嬬亨旗忖憲堪嶄議Character?忖憲??
for character in "Hello" {
println(character)
}
// H
// e
// l
// l
// o
For-Condition-Increment For-訳周-弓奐
茅阻for-in儉桟?Swift珊屶隔勧由C囂冱梓訳周弓奐議for儉桟
for var index = 0; index < 3; ++index {
println("index is \(index)")
}
// index is 0
// index is 1
// index is 2
宸頁械喘議侘塀?
for <initialization>; <condition>; <increment> {
<statements>
}
撃催委儉桟協吶侯葎阻眉倖何蛍?効C囂冱匯劔。隼遇嚥C音揖議頁?Swift音俶勣喘凄催委 “兜兵晒; 訳周; 奐楚” 議旗鷹翠淫軟栖。儉桟梓孚和中送殻峇佩?
- 輝儉桟及匯肝序秘?initialization expression?兜兵晒燕器塀?柴麻匯肝?譜崔挫儉桟侭俶議械楚賜宀延楚。
- 柴麻condition expression?訳周燕器塀?。泌惚柴麻潤惚葎false?邪??儉桟嶮峭?旺写偬峇佩for儉桟硫凄催?}?朔中議旗鷹。泌惚潤惚葎?true?寔?夸峇佩儉桟悶寄凄催坪議旗鷹。
- 壓侭嗤議囂鞘峇佩頼朔?柴麻increment expression(奐楚燕器塀)。柴方匂辛嬬弓奐賜弓受?匆辛嬬功象囂鞘峇佩議潤惚繍兜兵晒延楚譜葎仟議峙。柴麻頼奐楚燕器塀卦指欺及2化?訳周燕器塀壅肝瓜柴麻。
<initialization> while <condition> {
<statements>
<increment>
}
械楚才延楚壓兜兵晒燕器塀嶄議蕗苧?曳泌var index = 0?峪壓for儉桟徭失坪何嗤丼。泌惚俶勣岑祇index恷嶮議峙?駅倬壓儉桟蝕兵念蕗苧index?
var index: Int for index = 0; index < 3; ++index {
println("index is \(index)")
}
// index is 0
// index is 1
// index is 2
println("The loop statements were executed \(index) times")
// prints "The loop statements were executed 3 times"
廣吭?儉桟頼撹朔index恷嶮議峙頁3?音頁2。恷朔匯肝峇佩奐楚燕器塀距喘阻++index?委index譜葎3?聞誼index<3吉噐false?儉桟潤崩。While Loops - While儉桟
while儉桟壓訳周延葎false念峇佩匯怏囂鞘?宸窃儉桟恷挫喘壓及匯倖亨旗蝕兵念旺音岑祇亨旗匂議方忖議扮昨。Swift戻工阻曾嶽while儉桟:- while 壓耽肝宥狛儉桟議蝕遊柴麻訳周
- do-while 壓耽肝宥狛儉桟議潤硫柴麻訳周
while
匯倖while儉桟蝕兵噐柴麻汽倖議訳周?泌惚訳周葎true?匯怏囂鞘繍嶷鹸岷欺訳周延葎false。宸頁械需議while侘塀?
while <condition> {
<statements>
}
曳泌?螺宸倖出Snakes and Ladders議嗄老?賜Chutes and Ladders?:5-1
嗄老議号夸頁宸劔議?
- 医徨貧嗤25倖裳侘?隼朔朕炎頁欺器賜階埆25催圭翠。
- 耽匯態?低枠辧鎗中濵徨?隼朔梓孚邦峠圭?議倡?収遊卞強欺斤哘方忖議圭翠貧。
- 泌惚恠頼鯛壓杢徨議久何?低辛參点貧杢徨。
- 泌惚恠頼鯛壓敷議遊何?低辛參恠欺椎訳敷議硫何。
宸倖嗄老医喇匯倖Int侏方怏婢幣竃栖。万議寄弌児噐finalSquare械楚?乎械楚喘栖兜兵晒方怏旺壓岻朔殊臥覆旋訳周。嗄老医兜兵晒葎26倖峙葎0議Int侏方象?音頁25倖?蛍艶了噐0崛25議沫哈??
let finalSquare = 25 var board = Int匯乂圭翠公敷嚥杢徨譜嗤醤悶議峙。嗄老医戦?低嬬壓嗤圭翠嗤杢徨重議仇圭?貧卞強屎方?遇嗤敷遊議仇圭低峪嬬?和卞強減方?
board[03] = +08; board[06] = +11; board[09] = +09; board[10] = +02 board[14] = -10; board[19] = -11; board[22] = -02; board[24] = -08圭翠3嗤杢徨重?侭參低辛參卞強欺圭翠11。葎阻燕峰宸倖強恬?board[03]吉噐+08,吉揖噐匯倖屁侏方峙8?軸3才11議餓?。匯圷塰麻憲紗塰麻憲?+i?嚥匯圷受塰麻憲?-i?屢峠財?泌惚方峙弌噐10祥喘0紋旗?宸劔侭医貧議協吶祥斤馴阻。(欠鯉距屁音頁駅倬議?徽旗鷹酒準載嗤駅勣)
螺社蝕兵噐圭翠0?祥壓嗄老医恣和叔議翌中。及匯和誘濵頁委螺社揮欺嗄老井戦中?
var square = 0
var diceRoll = 0
while square < finalSquare {
// roll the dice
if ++diceRoll == 7 { diceRoll = 1 }
// move by the rolled amount square += diceRoll
if square < board.count {
// if we're still on the board, move up or down for a snake or a ladder
square += board[square]
}
}
println("Game over!")
宸倖箭徨載酒汽議庁亭阻誘濵徨。喘昧字方議伏撹匂栖紋旗?diceRoll貫0蝕兵。耽匯倖while儉桟?diceRoll宥狛徭紗塰麻憲?++i?弓奐?隼朔殊臥頁倦狛寄。++diceRoll議卦指峙吉噐diceRoll徭紗參朔議峙。泌惚卦指峙吉噐7?濵徨峙夸狛寄?嶷譜葎1。宸劔diceRoll議峙氏匯岷頁1?2?3?4?5?6?1?2吉吉。壓辧濵徨朔?螺社功象diceRoll卞強圭翠。嗤辛嬬濵徨議方氏斑螺社階狛圭翠25?宸劔祥麻嗄老潤崩。葎阻宙峰宸倖魁尚?旗鷹壓?board[square]耶紗峙參念枠殊臥square議峙頁倦富噐board方怏議count奉來?泌惚頁夸功象孖嗤議square峙繍螺社貧卞賜和卞欺屢哘杢徨賜敷。
泌惚音峇佩宸倖殊臥?board[square]氏辛嬬晦編函誼board方怏順尫翌議峙?擬崑埆順。泌惚square孖壓吉噐26?旗鷹繍晦編殊臥board[26]?宸倖峙階狛阻方怏尫崙。
孖嗤議While儉桟峇佩欺恷朔?氏殊臥儉桟訳周心儉桟頁倦氏壅肝峇佩。泌惚螺社厮将卞強賜宀圭翠階狛25?儉桟訳周氏柴麻葎false?嗄老潤崩。
壓宸倖箭徨嶄聞喘While儉桟頁曳熟栽癖議?咀葎嗄老議海業壓儉桟議蝕遊音苧鳩?斑儉桟匯岷峇佩岷欺蒙協議諾怎訳周竃孖。
Do-While
While儉桟議総匯倖侘塀頁do-while?壓深打儉桟訳周念枠峇佩匯肝屁倖儉桟悶?隼朔壅写偬嶷鹸儉桟岷欺訳周葎false。和中頁do-while議械需侘塀:
do {
<statements>
} while <condition>
壅栖心心Snakes and Ladders議箭徨?喘do-while遇音頁while栖糞孖。finalSquare, board, square, 才diceRoll脅喘屢揖議圭塀兜兵晒?let finalSquare = 25 var board = Int[](count: finalSquare + 1, repeatedValue: 0) 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壓宸倖井云議嗄老嶄?儉桟嶄及匯倖荷恬頁殊臥匯倖杢徨賜敷。短嗤杢徨嬬岷俊委螺社揮欺圭翠25?侭參音辛嬬峪点匯倖杢徨祥哺阻。咀緩壓儉桟戦枠殊臥杢徨賜敷氏厚芦畠。
嗄老議蝕兵?螺社壓“圭翠0”。 board[0]喟垓吉噐0?短嗤艶議孔嬬?
do {
// move up or down for a snake or ladder
square += board[square]
// roll the dice
if ++diceRoll == 7 {
diceRoll = 1
}
// move by the rolled amount
square += diceRoll
} while square < finalSquare
println("Game over!")
壓旗鷹殊臥朔?蝕兵辧濵徨?螺社宥狛diceRoll圭翠?念卞強?乎儉匯岷桟峇佩欺恷朔。儉桟訳周(while square < finalSquare)効岻念箭徨匯劔?徽頁宸肝氏壓及匯肝儉桟議潤硫嘉柴麻。do-while儉桟議潤更曳while儉桟厚癖栽云箭。貧中do-while嶄?壓儉桟訳周鳩範square挽症壓嗄老医戦中朔?square += board[square]氏岷俊序佩柴麻?音駅序佩方怏埆順議殊臥。
Conditional Statements - 訳周囂鞘
園殻嶄械械功象音揖議訳周峇佩音揖議旗鷹?低辛嬬氏勣旗鷹壓竃危朔塰佩駆翌議囂鞘?賜宀輝方峙埆順扮婢幣匯倖嶧連。厘断辛參喘conditional?訳周?栖糞孖。Swift戻工曾嶽圭塀栖耶紗旗鷹議蛍屶?械需議if才switch囂鞘。?堡撮s?if囂鞘栖柴麻峪嗤富楚蛍屶議議訳周?遇Switch喘噐厚鹸墫議秤趨?蒙艶頁壓庁塀謄塘議扮昨嗤廁噐僉夲栽癖議旗鷹蛍屶栖峇佩。
If
壓和中恷酒汽議箭徨戦?if囂鞘嗤匯倖if訳周。侭嗤議囂鞘脅峪嗤壓if訳周葎true議秤趨和嘉峇佩?
var temperatureInFahrenheit = 30
if temperatureInFahrenheit <= 32 {
println("It's very cold. Consider wearing a scarf.")
}
// prints "It's very cold. Consider wearing a scarf."
念中議箭徨殊臥阻梁業頁倦吉噐32父箆業。泌惚頁夸嬉咫嶧連。倦夸音嬉咫嶧連?岷俊峇佩if囂鞘寄凄催朔中議旗鷹。if囂鞘辛參戻工匯倖屈僉匯議囂鞘?械需議?else clause?喘噐輝if訳周葎false扮。宸乂囂鞘喘else購囚忖栖陣崙?
temperatureInFahrenheit = 40
if temperatureInFahrenheit <= 32 {
println("It's very cold. Consider wearing a scarf.")
} else {
println("It's not that cold. Wear a t-shirt.")
}
// prints "It's not that cold. Wear a t-shirt."
曾倖寄凄催嶄議匯倖瓜峇佩。咀葎梁業奐紗階狛阻40父箆業?厮将音俶勣秀咏肇揮律渚?侭參else蛍屶瓜乾窟。低辛參聞喘謹倖if囂鞘?崧宸劔奐紗訳周?
temperatureInFahrenheit = 90 if temperatureInFahrenheit <= 32 {
println("It's very cold. Consider wearing a scarf.")
} else if temperatureInFahrenheit >= 86 {
println("It's really warm. Don't forget to wear sunscreen.")
} else {
println("It's not that cold. Wear a t-shirt.")
}
// prints "It's really warm. Don't forget to wear sunscreen."
宸戦奐紗議if囂鞘喘噐哘斤自極况犯議秤趨。恷朔議else訳周隠藻?嬉咫屡音絶匆音犯議秤趨。恷朔議else訳周頁辛僉議?咀緩泌惚音俶勣亟頼屁辛參肇渠。
temperatureInFahrenheit = 72
if temperatureInFahrenheit <= 32 {
println("It's very cold. Consider wearing a scarf.")
} else if temperatureInFahrenheit >= 86 {
println("It's really warm. Don't forget to wear sunscreen.")
}
壓宸倖箭徨嶄?梁業屡音絶匆音犯嘉嬬乾窟if賜宀else訳周栖嬉咫佚連。Switch
Switch囂鞘喘匯倖峙栖謄塘屢斤哘議叱倖謄塘庁塀。隼朔峇佩屢斤哘議旗鷹翠?児噐匯蝕兵謄塘撹孔議庁塀。switch囂鞘戻工阻哘斤謹嶽僉夲秤趨議侃尖栖紋旗if囂鞘。恷酒汽議侘塀?switch曳熟匯倖峙斤哘議匯倖賜宀謹倖屢揖侘塀議峙?
switch some value to consider {
case value 1:
respond to value 1
case value 2, value 3:
respond to value 2 or 3
default:
otherwise, do something else
}
耽倖switch囂鞘喇謹倖辛嬬議case?秤趨?更撹?脅喘炎芝議case購囚忖蝕遊。茅阻曳熟斤哘議峙?Swift珊葎耽嶽case哘斤厚鹸墫議謄塘庁塀戻工阻叱嶽圭隈?朔中嫗准壅傍。耽匯倖switch囂鞘脅駅倬exhaustive?峋聾??旺拝耽匯倖侭深打窃僉辛嬬議峙脅駅倬謄塘switch嶄議匯倖case。泌惚音嬬斤哘欺switch嶄議侭嗤case議峙?辛參協吶倖潮範議僉函匂栖盾畳。僉函匂喘default購囚忖栖燕幣?駅倬竃孖壓恷朔。
和中議箭徨喘switch囂鞘謄塘阻匯倖弌亟忖憲?someCharacter?
let someCharacter: Character = "e"
switch someCharacter {
case "a", "e", "i", "o", "u":
println("\(someCharacter) is a vowel")
case "b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z":
println("\(someCharacter) is a consonant")
default:
println("\(someCharacter) is not a vowel or a consonant")
}
// prints "e is a vowel"
Switch囂鞘及匯倖case謄塘阻5倖弌亟議圷咄忖銚。屢貌仇?及屈倖case謄塘侭嗤議絹咄弌亟忖銚。case嶄旺音俶勣亟貧侭嗤凪麿議哂囂忖銚?侭參switch戻工阻default栖謄塘凪麿侭嗤音頁圷咄匆音頁絹咄議秤趨。宸劔議訳周隠屬阻switch短嗤凖息。
No Implicit Fallthrough - 短嗤咨來渠秘
屢曳C才objective-c嶄議switch囂鞘?Swift嶄?泌惚梨阻亟break?議switch音氏潮範議渠鯛欺耽倖case議和中序秘総匯倖case。屢郡?switch囂鞘輝及匯倖囑欺議case頼撹扮祥頼撹阻万屁倖議峇佩?音俶勣亟break。咀緩曳軟C囂冱?swift議switch厚紗芦畠才酒汽?閲窒阻峇佩謹倖case議危列。耽倖case議麼孤淫凄峪富匯倖辛峇佩議囂鞘。和中宸劔亟頁涙丼議?咀葎及匯倖case頁腎議?
let anotherCharacter: Character = "a"
switch anotherCharacter {
case "a": case "A":
println("The letter A")
default:
println("Not the letter A")
}
// this will report a compile-time error
音崧C囂冱嶄議Switch?宸戦議switch囂鞘音嬬謄塘"a"才"A"。曳泌?case "a"氏壓園咎扮烏危?短嗤孀欺販採辛峇佩囂鞘。勝辛嬬議閲窒阻吭翌貫匯倖case渠秘総匯倖?宸劔聞旗鷹厚芦畠。泌惚嗤謹倖謄塘斤嵆議?辛參喘矯催侯蝕?崧和中宸劔亟撹謹佩?
switch some value to consider {
case value 1, value 2: statements
}
廣吭?葎蒙艶議switch case僉夲渠鯛佩葎?辛參聞喘fallthrough購囚忖?壓和猟嶄峋盾
Range Matching - 袈律謄塘
switch嶄case議峙辛參殊臥麿断坪壓議袈律。宸倖箭徨聞喘方忖袈律辛參戻工販吭寄弌方忖議徭隼囂冱柴方。
let count = 3_000_000_000_000
let countedThings = "stars in the Milky Way"
var naturalCount: String
switch count {
case 0:
naturalCount = "no"
case 1...3:
naturalCount = "a few"
case 4...9:
naturalCount = "several"
case 10...99:
naturalCount = "tens of"
case 100...999:
naturalCount = "hundreds of"
case 1000...999_999:
naturalCount = "thousands of"
default:
naturalCount = "millions and millions of"
}
println("There are \(naturalCount) \(countedThings).")
// prints "There are millions and millions of stars in the Milky Way."
Tuples 圷怏
低辛參聞喘圷怏壓屢揖議switch囂鞘嶄霞編謹倖峙。耽匯倖圷怏嶄議圷殆脅辛參編彭才袈律嶄音揖議峙序佩謄塘。総翌?喘和皿??_?炎幣憲栖謄塘販吭辛嬬議峙。和中箭徨嶄聞喘匯倖泣恫炎?x,y??喘圷怏侏(Int, Int)栖燕幣?辛參壓和中議夕嶄蛍窃竃栖?
let somePoint = (1, 1)
switch somePoint {
case (0, 0):
println("(0, 0) is at the origin")
case (_, 0):
println("(\(somePoint.0), 0) is on the x-axis")
case (0, _):
println("(0, \(somePoint.1)) is on the y-axis")
case (-2...2, -2...2):
println("(\(somePoint.0), \(somePoint.1)) is inside the box")
default:
println("(\(somePoint.0), \(somePoint.1)) is outside of the box")
}
// prints "(1, 1) is inside the box"
5-2Switch囂鞘畳協阻泣頁倦壓圻泣?0?0?貧?壓碕弼議x已貧?壓拡弼議y已貧?壓清弼4X4議裳侘葎嶄伉議圻泣坪?賜宀壓裳侘翌。
嚥C囂冱音揖?Swift塋俯謹倖switch議case深打屢揖議峙。糞縞貧泣(0,0)嬬謄塘箭徨嶄侭嗤議膨倖case。隼遇?泌惚謹倖謄塘竃孖?及匯倖謄塘撹孔議case繍瓜聞喘。泣?0?0?嬬遍枠謄塘case?0?0??侭參凪麿侭嗤議case繍瓜策待。
Value Bindings 峙鰯協
匯倖switch議case嬬鰯協喘噐謄塘匝扮械楚賜延楚峙?壓case議蛍屶旗鷹戦聞喘。宸祥頁value binding?峙鰯協??咀葎宸乂峙壓case議旗鷹悶嶄頁匝扮械楚賜延楚議“円順”。和中議箭徨嗤匯倖泣?x,y??喘圷怏侏(Int,Int)栖燕幣?壓夕嶽婢幣竃栖泌和:
let anotherPoint = (2, 0)
switch anotherPoint {
case (let x, 0):
println("on the x-axis with an x value of \(x)")
case (0, let y):
println("on the y-axis with a y value of \(y)")
case let (x, y):
println("somewhere else at (\(x), \(y))")
}
// prints "on the x-axis with an x value of 2
5-3switch囂鞘栖鳩協泣頁倦壓碕弼x已貧?壓拡弼y已?賜宀凪麿仇圭。
眉倖switch議case脅蕗苧阻媼了械楚x才y?壙扮貫anotherPoint媼喘匯倖賜曾倖圷怏峙。及匯倖case戦?case (let x, 0)?謄塘公販吭匯倖y峙葎0?旺蛍塗泣議x峙公匝扮械楚x議泣。屢貌仇?及屈倖case?case (0, let y)?謄塘公匯倖x峙葎0?蛍塗泣議y峙公匝扮械楚y議泣。
匯稀匝扮械楚瓜蕗苧?麿断繍壓case議旗鷹翠嶄聞喘。宸戦麿断繍恬葎酒亟壓println痕方嶄嬉咫竃栖。
廣吭switch囂鞘短嗤default議case。恷朔匯倖case?case let (x, y)?蕗苧阻淫根曾倖媼了械楚辛參謄塘販採峙議圷怏。恬葎潤惚?万謄塘販採辛嬬議峙?音俶勣default囂鞘switch祥怎校頼胆阻。
貧中議箭徨嶄?蕗苧x才y喘阻購囚簡let?咀葎宸戦音俶勣壓case議旗鷹粁戦個延万断議峙。隼遇?麿断辛參喘延楚栖旗紋?聞喘var購囚簡。泌惚喘阻延楚?夸氏幹秀匝扮延楚旺兜兵晒葎栽癖議峙。販採斤延楚議個延脅峪氏唹峒case旗鷹粁嶄議何蛍。
Where
switch議case嬬聞喘where徨鞘栖序匯化登僅訳周。 和中議箭徨繍泣(x,y)壓和夕嶽蛍窃?
let yetAnotherPoint = (1, -1)
switch yetAnotherPoint {
case let (x, y) where x == y:
println("(\(x), \(y)) is on the line x == y")
case let (x, y) where x == -y:
println("(\(x), \(y)) is on the line x == -y")
case let (x, y):
println("(\(x), \(y)) is just some arbitrary point")
}
// prints "(1, -1) is on the line x == -y"
5-4switch囂鞘登僅阻泣頁倦壓駄弼弍?貧拝x == y?賜壓從弼弍?貧拝x == -y?賜脅音頁。
眉倖switch議case蕗苧阻媼了械楚x才y?匝扮媼喘point嶄圷怏峙。宸乂械楚恬葎where徨鞘議匯何蛍?喘栖幹秀強蓑議標僉。峪嗤輝where徨鞘議訳周潤惚葎true?Switch議case夸氏謄塘孖嗤point議峙。
祥崧壓念匯倖箭徨嶄?恷朔議case謄塘侭嗤辛嬬議峙?侭參音俶勣default。
Control Transfer Statements - 陣崙廬卞囂鞘
陣崙廬卞囂鞘嬬個延厮将峇佩旗鷹議乏會?嬬聞旗鷹柳廬欺艶議何蛍。Swift嗤膨倖鞘徨?- continue
- break
- fallthrough
- return
control, break才fallthrough壓和猟嶄峋盾。reture囂鞘壓Functions嶄宙峰。
Continue
Continue囂鞘御盆儉桟悶嶮峭孖壓議荷恬?隼朔蝕兵亨旗和匯倖儉桟。挫崧壓傍“厘宸肝亨旗恂頼晴”?悳岻音氏宣蝕儉桟悶。和中箭徨嶄貫匯倖弌亟忖憲堪嶄卞茅阻侭嗤議圷咄才腎鯉?幹秀阻倖忖稚玉囂?廣吭?壓for-condition-increment儉桟嶄?距喘阻continue朔拙紗匂卆症氏柴麻。儉桟氏写偬崧峠扮匯劔垢恬?峪嗤儉桟悶嶄議旗鷹氏瓜柳狛。
let puzzleInput = "great minds think alike"
var puzzleOutput = ""
for character in puzzleInput {
switch character {
case "a", "e", "i", "o", "u", " ":
continue
default:
puzzleOutput += character
}
}
println(puzzleOutput)
// prints "grtmndsthnklk"
貧中旗鷹戦?峪勣謄塘欺圷咄忖銚賜腎鯉?祥氏乾窟continue購囚忖。聞云肝亨旗羨軸嶮峭?隼朔岷俊柳秘和肝亨旗議蝕遊。宸倖圭塀聞誼switch旗鷹翠嬬謄塘(才策待)圷咄忖銚嚥腎鯉?曳喘旗鷹翠委耽匯倖勣嬉咫忖憲脅謄塘匯肝議挫。Break
Break囂鞘嬬羨軸嶮峭屁倖陣崙送。辛參功象低?勣議壓switch賜儉桟囂鞘戦議販採仇圭嶮峭屁倖峇佩。Break in a Loop Statement - 儉桟嶄議Break
輝壓儉桟悶嶄聞喘break?儉桟氏羨軸唯峭?旺繍陣崙送揮欺儉桟悶凄催(})朔圭議及匯佩旗鷹戦。儉桟悶戦凪麿議旗鷹音氏瓜峇佩?匆音氏蝕兵和匯肝亨旗。Break in a Switch Statement - Switch嶄議break
壓switch戦聞喘break?switch囂鞘氏羨軸嶮峭?旺繍陣崙送揮欺switch囂鞘凄催(})朔圭議及匯佩旗鷹戦。宸嶽蒙來辛參喘噐switch戦謄塘?賜策待?匯倖賜謹倖case。咀葎Swift議switch頁博訟議?旺拝音塋俯嗤腎case議?嗤扮昨勣風嶷議謄塘才葎阻聞吭夕苧?垓璜歠堊?case。輝switch謄塘阻break囂鞘?case嶄議break嬬岷俊嶮峭屁倖switch。
和中議箭徨嶄switch嗤匯倖忖憲峙?旺拝登僅膨嶽囂冱岻匯嶄頁倦嗤方忖憲催。匯倖酒汽議switch嶄淫根阻謹倖峙?廣吭?匯倖switch議case峪嬬淫根匯倖恬葎園咎危列議廣瞥。廣瞥音頁囂鞘?音氏擬崑switch議case瓜策待。峪嬬聞喘break囂鞘栖柳狛case。
let numberSymbol: Character = "眉"
// Simplified Chinese for the number 3
var possibleIntegerValue: Int?
switch numberSymbol {
case "1", "١", "匯", "๑":
possibleIntegerValue = 1
case "2", "٢", "屈", "๒":
possibleIntegerValue = 2
case "3", "٣", "眉", "๓":
possibleIntegerValue = 3
case "4", "٤", "膨", "๔":
possibleIntegerValue = 4
default:
break
}
if let integerValue = possibleIntegerValue {
println("The integer value of \(numberSymbol) is \(integerValue).")
} else {
println("An integer value could not be found for \(numberSymbol).")
}
// prints "The integer value of 眉 is 3."
箭徨嶄宥狛殊臥numberSymbol登僅頁倦頁性供囂?唖性荻囂?嶄猟賜宀密猟憲催栖誼欺1崛4議方忖。泌惚謄塘撹孔?凪嶄議匯倖case戦氏験公辛僉侏Int延楚possibleIntegerValue匯倖栽癖議屁侏峙。壓switch囂鞘峇佩頼撹朔?箭徨戦喘阻辛僉侏鰯協栖鳩協峙頁倦瓜窟孖。possibleIntegerValue延楚嗤匯倖咨來議兜兵峙nil?醤嗤辛僉侏議單泣。峪嗤壓念膨倖case嶄?輝possibleIntegerValue瓜験阻糞縞議峙辛僉鰯協嘉氏撹孔。
壓貧中箭徨嶄双竃侭嗤辛嬬議忖憲峙音湊糞縞?侭參default嬬戻工匯倖短販採忖憲瓜僉嶄秤趨和議否匂。宸議default音喘峇佩販採荷恬?峪亟倖酒汽議break。匯稀default瓜謄塘?break囂鞘羨軸嶮峭switch?旺写偬峇佩 if let囂鞘。
Fallthrough
Swift嶄議Switch音氏渠和欺case議和圭旺序秘和匯倖case。咀緩?屁倖switch囂鞘支壓及匯倖謄塘議case頼撹朔潤崩。屢郡?C囂冱勣箔低壓耽倖case議挑硫峨秘匯倖break栖契峭渠秘。屢曳噐C囂冱?Swift議switch鋤峭潮範渠秘斑厚紗酒準才辛陣?宸劔閲窒阻峇佩謹倖case議危列。泌惚低鳩糞俶勣C塀議渠秘蒙來?低辛參聞喘fallthrough購囚簡。和中議箭徨喘fallthrough栖幹秀匯粁宙峰方忖議猟云?
let integerToDescribe = 5
var description = "The number \(integerToDescribe) is"
switch integerToDescribe {
case 2, 3, 5, 7, 11, 13, 17, 19:
description += " a prime number, and also" fallthrough
default:
description += " an integer."
}
println(description)
// prints "The number 5 is a prime number, and also an integer."
箭徨嶄蕗苧阻匯倖兆葎description議String侏延楚旺蛍塗匯倖兜兵峙。隼朔痕方喘switch謄塘integerToDescribe議峙。泌惚integerToDescribe議峙憲栽殆方双燕嶄議匯??恷朔議description氏奐紗匯粁忖憲?廣吭方忖脅頁殆方。隼朔喘fallthrough購囚忖斑旗鷹“渠欺”default戦。default議旗鷹嶄壅駆翌議公忖憲堪耶紗乂宙峰?恷朔switch潤崩。泌惚integerToDescribe音効殆方燕嶄販採匯?謄塘?椎功云祥音氏謄塘switch議及匯倖case。宸戦中短嗤凪麿議case?咀緩integerToDescribe岷俊序秘default否匂。
壓switch峇佩頼撹朔?方忖議宙峰喘println痕方嬉咫竃栖。壓云箭嶄?5頁屎鳩議基宛。
廣吭?fallthrough購囚忖音殊臥case戦議訳周?氏岷俊渠秘和匯倖case。fallthrough酒汽議斑旗鷹峇佩欺和匯倖case?賜default?議旗鷹翠嶄?才炎彈C囂冱議蒙來匯劔。
Labeled Statements - 炎禰囂鞘
低辛參廼耗儉桟賜壓switch囂鞘嶄廼耗凪麿議儉桟?Swift囂鞘嶽議switch辛參幹秀鹸墫議陣崙送潤更。 隼遇?儉桟才switch囂鞘脅辛參狛壼仇聞喘break。咀緩?嗤扮苧鳩議聞喘break栖嶮峭旗鷹載嗤喘。窃貌議?泌惚低嗤謹倖廼耗議儉桟?continue氏厚嗤喘。葎阻恂欺宸匯泣?低辛參喘statement label栖炎芝儉桟賜switch?嚥break賜continue囂鞘匯軟聞喘宸倖炎禰栖嶮峭賜写偬炎芝囂鞘議峇佩。
炎禰囂鞘恬葎哈擬購囚簡壓炎禰議揖匯佩?朔中効彭丹催“?”。 宸戦嗤匯倖喘阻乎憲催議while儉桟箭徨?侭嗤議儉桟才switch脅頁屢揖議。
<label name>: while <condition> {
<statements>
}
和中議箭徨戦嗤匯倖喘阻炎禰議while儉桟?聞喘阻break才continue囂鞘?Snakes and Ladders嗄老辛參壓貧猟嶄心欺?葎阻覆旋?低駅倬如挫欺器25催圭翠泌惚濵徨揮低階狛阻25催圭翠?低駅倬嶷仟卿濵徨岷欺屎挫丘器25催圭翠。
嗄老医才貧猟嶄議匯劔
5-6
延楚 finalSquare, board, square, diceRoll議兜兵晒脅効念猟匯劔?
let finalSquare = 25 var board = Int[](count: finalSquare + 1, repeatedValue: 0) 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宸倖井云喘while儉桟才switch囂鞘栖糞孖嗄老貸辞。While儉桟議炎禰葎gameLoop?葎Snakes and Ladders Game炎芝竃嗄老麼悶。
While儉桟議訳周頁while square != finalSquare?吭房頁低駅倬鯛壓25催圭翠貧?
gameLoop: while square != finalSquare {
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]
}
}
println("Game over!")
濵徨壓耽倖儉桟議恷蝕兵辧強。隼朔螺社羨軸卞強?switch囂鞘喘栖登僅卞強議潤惚?麻竃頁倦塋俯卞強?
- 泌惚濵徨揮螺社丘器恷朔議圭翠?嗄老潤崩。break gameLoop囂鞘繍陣崙送揮欺嗄老潤崩議仇圭?軸while儉桟翌議及匯佩。
- 泌惚濵徨階狛阻恷朔議圭翠?夸卞強涙丼?螺社俶勣壅肝誘濵。break gameLoop氏嶮峭云肝亨旗?蝕兵和肝亨旗。
- 壓凪麿議秤趨和?濵徨嗤丼。螺社?念卞強圭翠旺功象嗄老貸辞殊臥敷賜杢徨。儉桟潤崩?陣崙送卦指欺while訳周登僅侃?畳協頁倦俶勣壅肝亨旗。
廣吭?泌惚貧中議break囂鞘音聞喘gameLoop炎禰?繍氏嶄僅switch囂鞘?遇音頁while囂鞘。聞喘gameLoop炎禰辛參厚紗苧鳩議斑陣崙送嶮峭。
揖劔勣廣吭?輝距喘continue gameLoop栖柳欺和匯倖亨旗儉桟嶄音頁駅倬聞喘gameLoop炎禰。咀葎宸戦峪嗤匯倖儉桟悶?音氏鞭欺凪麿儉桟悶議唹峒。隼遇?喘阻gameLoop炎禰匆短焚担音挫。宸劔恂隠隔嚥break都円議炎禰由匯?嗤廁噐斑嗄老貸辞嬬厚紗賠漣堋響才尖盾。
<貧匯准
和匯准>