2 分支語句——《Swift3.0 從入門到出家》原創(chuàng)連載

2 分支語句——《Swift3.0 從入門到出家》

2 分支語句
當(dāng)程序面臨多個(gè)選擇凝颇,每一個(gè)選擇都會(huì)執(zhí)行不同的代碼塊皮服,這個(gè)時(shí)候就要使用分支語句牢裳。常見的分支語句有:

if 選擇語句:if... if…else if…elseif…else
if是現(xiàn)實(shí)生活中:“如果…那么”的映射
if 選擇語句
格式:if 判斷條件{
執(zhí)行語句塊
}

【注意】:判斷條件不能是普通常量表達(dá)式,只能是關(guān)系運(yùn)算或者邏輯運(yùn)算的表達(dá)式隆檀,只有判斷條件為真的時(shí)候摇天,才能執(zhí)行語句塊的內(nèi)容
在swift語言中,盡量不要在if判斷條件出現(xiàn)判斷可選類型的變量是否等于nil恐仑。將可選類型的值賦給一個(gè)常量泉坐,然后編譯器會(huì)自動(dòng)判斷可選類型是否為nil,如果不為nil的話裳仆,會(huì)自動(dòng)強(qiáng)制解析腕让,將可選類型值變成具體值,這種形式被稱為【可選綁定】

let str = scanf()!
if let n = Int(str){
執(zhí)行語句塊
}

if…else…

if 判斷條件{
語句塊1
}else{
語句塊2
}

如果判斷條件為真歧斟,就會(huì)執(zhí)行語句塊1的內(nèi)容整個(gè)if語句結(jié)束
如果判斷條件為假纯丸,直接執(zhí)行語句塊2的內(nèi)容

if…else if …else

if 判斷條件1{
語句塊1
}
else if 判斷條件2{
語句塊2
}
else{
語句塊3
}

【注意】:else語句可以缺省
當(dāng)某個(gè)if后面的判斷條件為真,執(zhí)行if下面的語句塊静袖,然后結(jié)束整個(gè)if語句觉鼻,后面的if語句不再判斷

switch 多分支語句

switch 適用于輕量級(jí)判斷,判斷條件個(gè)數(shù)少队橙,并且個(gè)數(shù)已知

switch 常量{
case 常量1:
語句塊1
case 常量2:
語句塊2
……
default:
語句塊n
}

【注意】
case后面的常量必須唯一坠陈,不能重復(fù)
case后面的常量值如果和switch后面的常量匹配,執(zhí)行case下面的語句塊喘帚,然后結(jié)束整個(gè)switch語句
switch下面的case語句畅姊,要包含switch后面長(zhǎng)兩個(gè)涉及到的所有值
case后面的常量都不能和switch后面的常量匹配就執(zhí)行default后面的語句塊內(nèi)容
swift中的switch語句中的default語句不能缺省
多個(gè)常量值共用一個(gè)語句塊,case后面的每一個(gè)常量值用逗號(hào)隔開吹由,最后一個(gè)常量值后面添加冒號(hào)
fallthrough 貫穿,添加貫穿的case語句會(huì)繼續(xù)執(zhí)行下一個(gè)case語句塊的內(nèi)容朱嘴,不判斷下一個(gè)case后面的常量是否滿足

switch下面的case 可以添加區(qū)間也可以添加元組
例子:case后面添加區(qū)間

let s = 70
switch s{
case 90…100:
print(“A”)
case 89..<90:
print(“ B”)
default:
print(“E”)
}

case 后面常量是一個(gè)元組

let point = (1,2)
switch point{
case (0.0):
 
print(“該點(diǎn)坐標(biāo)為原點(diǎn)坐標(biāo)’)
case (_,0):
print(“該點(diǎn)在X軸上”)//只要元組的第二個(gè)值和case后面的第二個(gè)值相同倾鲫,前面的值是多少無所謂粗合,case后面的元組值已經(jīng)和switch后面的元組值匹配
case(0,_):
print(“該點(diǎn)在y軸上”)
case (-2…2,-2…2):
print(“該點(diǎn)在坐標(biāo)區(qū)間內(nèi)”)
default:
print(“打印該點(diǎn)的坐標(biāo)\(point.0),\(point.1)”)
}
 

case 后面匹配的值可以使用臨時(shí)變量或者臨時(shí)常量接收乌昔,在case下面的語句塊中可以直接訪問這個(gè)臨時(shí)變量或者臨時(shí)常量 ————我們稱這種情況為【值綁定】
例子;

let score = 60
switch score{
case 90…100:
print(“A”)
case let grade: //用一個(gè)臨時(shí)常量來接收
print(grade) //可以直接訪問這個(gè)臨時(shí)常量
}

【注意】:臨時(shí)常量已經(jīng)包含了score能出現(xiàn)的所有可能值,所以值綁定可以對(duì)default語句進(jìn)行缺省
值綁定可以將匹配的值賦給一個(gè)臨時(shí)變量后者臨時(shí)常量磕道,看業(yè)務(wù)邏輯,需要修改匹配值就定義成變量溺蕉,不需要修改就定義成常量

可以使用值綁定判斷元組中的數(shù)據(jù)內(nèi)容

let paint = (1,1)
switch point{
case (0,0):
print(“該點(diǎn)坐標(biāo)在原點(diǎn)”)
case(_,0):
print(“該點(diǎn)左邊在x軸上”)
case(var x ,var y):
print(“將該點(diǎn)的坐標(biāo)移動(dòng)100個(gè)單位結(jié)果:\(x + 100, y + 100)”)
}

對(duì)case 后面的常量添加額外的判斷條件疯特,判斷語句要使用關(guān)鍵字where

let num = 15
switch num{
case num where num >= 10 && num <= 15:{
print(“”輸入的數(shù)字在10-15之間)
}
case num where num > 15:
print(“輸入的數(shù)字在15之后”)
default:
print(“小于20”)
}

拓展閱讀

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市漓雅,隨后出現(xiàn)的幾起案子录别,更是在濱河造成了極大的恐慌,老刑警劉巖邻吞,帶你破解...
    沈念sama閱讀 222,464評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件组题,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡抱冷,警方通過查閱死者的電腦和手機(jī)崔列,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來徘层,“玉大人峻呕,你說我怎么就攤上這事∪ばВ” “怎么了瘦癌?”我有些...
    開封第一講書人閱讀 169,078評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)跷敬。 經(jīng)常有香客問我讯私,道長(zhǎng),這世上最難降的妖魔是什么西傀? 我笑而不...
    開封第一講書人閱讀 59,979評(píng)論 1 299
  • 正文 為了忘掉前任斤寇,我火速辦了婚禮,結(jié)果婚禮上拥褂,老公的妹妹穿的比我還像新娘娘锁。我一直安慰自己,他們只是感情好饺鹃,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,001評(píng)論 6 398
  • 文/花漫 我一把揭開白布莫秆。 她就那樣靜靜地躺著间雀,像睡著了一般。 火紅的嫁衣襯著肌膚如雪镊屎。 梳的紋絲不亂的頭發(fā)上惹挟,一...
    開封第一講書人閱讀 52,584評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音缝驳,去河邊找鬼连锯。 笑死,一個(gè)胖子當(dāng)著我的面吹牛用狱,可吹牛的內(nèi)容都是我干的运怖。 我是一名探鬼主播,決...
    沈念sama閱讀 41,085評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼齿拂,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼驳规!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起署海,我...
    開封第一講書人閱讀 40,023評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤吗购,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后砸狞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捻勉,經(jīng)...
    沈念sama閱讀 46,555評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,626評(píng)論 3 342
  • 正文 我和宋清朗相戀三年踱启,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了研底。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,769評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡冠蒋,死狀恐怖乾胶,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情识窿,我是刑警寧澤,帶...
    沈念sama閱讀 36,439評(píng)論 5 351
  • 正文 年R本政府宣布喻频,位于F島的核電站缩宜,受9級(jí)特大地震影響甥温,放射性物質(zhì)發(fā)生泄漏膜宋。R本人自食惡果不足惜炼幔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,115評(píng)論 3 335
  • 文/蒙蒙 一乃秀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧跺讯,春花似錦、人聲如沸刀脏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽暂雹。三九已至,卻和暖如春杭跪,著一層夾襖步出監(jiān)牢的瞬間驰吓,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工姑廉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留庄蹋,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,191評(píng)論 3 378
  • 正文 我出身青樓限书,卻偏偏與公主長(zhǎng)得像章咧,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子扰柠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,781評(píng)論 2 361

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