亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 編程 > Swift > 正文

Swift中的條件切換語(yǔ)句switch...case學(xué)習(xí)教程

2020-03-09 17:49:04
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要介紹了Swift中的條件切換語(yǔ)句switch...case學(xué)習(xí)教程,Swift中的switch...case支持的數(shù)據(jù)類(lèi)型很多,非常之強(qiáng)大,需要的朋友可以參考下
 

語(yǔ)法
Swift 語(yǔ)言中 switch 語(yǔ)句的語(yǔ)法:

復(fù)制代碼代碼如下:

switch expression {
   case expression1  :
      statement(s)
      fallthrough /* 可選 */
   case expression2, expression3  :
      statement(s)
      fallthrough /* 可選 */

 

   default : /* 可選 */
      statement(s);
}


注意:在大多數(shù)語(yǔ)言中,switch 語(yǔ)句塊中,case 要緊跟 break,否則 case 之后的語(yǔ)句會(huì)順序運(yùn)行,而在 Swift 語(yǔ)言中,默認(rèn)是不會(huì)執(zhí)行下去的,switch 也會(huì)終止。如果你想在 Swift 中讓 case 之后的語(yǔ)句會(huì)按順序繼續(xù)運(yùn)行,則需要使用 fallthrough 語(yǔ)句。
需要注意的地方有兩點(diǎn):
Switch當(dāng)然也支持顯式的break,通常只有一種情況下你會(huì)這么做,那就是當(dāng)你也不想在default里做任何事情的時(shí)候,這個(gè)時(shí)候你就可以在default里顯式地加上一句break。
fallthrough并不是在任何情況下都有效,當(dāng)你在Switch里使用Value Binding技術(shù)的時(shí)候,fallthrough就被禁止了。Value Binding在下面會(huì)講到。

 

支持多種數(shù)據(jù)類(lèi)型
在Objective-C里,Switch語(yǔ)句只能支持整形的數(shù)據(jù)(或者一個(gè)字符),但是在Swift里,Switch能支持多種數(shù)據(jù)類(lèi)型,包括浮點(diǎn)、布爾、字符串等:
支持浮點(diǎn):

復(fù)制代碼代碼如下:

let float = 1.5  
switch float {  
    case 1.5:  
        "1.5"   //被輸出  
    default:  
        "default"  
}  

支持布爾:
復(fù)制代碼代碼如下:

let isSuccess = true  
switch isSuccess {  
    case true:  
        "true"   //被輸出  
    default:  
        "default"  
}  

支持字符串:
復(fù)制代碼代碼如下:

let name = "Bannings"  
switch name {  
    case "Bannings":  
        "Bannings"   //被輸出  
    default:  
        "default"  
}
  
可以說(shuō)是史上支持?jǐn)?shù)據(jù)類(lèi)型最多的Switch了。

 

支持區(qū)間運(yùn)算符
不僅僅是循環(huán)結(jié)構(gòu)里可以用區(qū)間運(yùn)算符,在Switch里同樣可以用區(qū)間運(yùn)算符:

復(fù)制代碼代碼如下:

var i = 15  
switch i {  
    case 0 ... 10:  
        "0~10"  
    case 11 ... 20:  
        "11~20" //被輸出  
    default:  
        "default"  
}
  
對(duì)某個(gè)數(shù)值區(qū)間進(jìn)行批量匹配,這樣是不是很酷?浮點(diǎn)數(shù)也同樣支持區(qū)間運(yùn)算符。

 

支持元組
作為被大大增強(qiáng)的Switch,元組也是被支持的:

復(fù)制代碼代碼如下:

let request = (true,"success")  
switch request {  
    case (true, "success"):  
        "success"   //被輸出  
    case (false, "failed"):  
        "failed"  
    default:  
        "default"  

使用元組和使用其他數(shù)據(jù)類(lèi)型一致,不過(guò)元組還有一項(xiàng)特點(diǎn),對(duì)于不想關(guān)心的值,可以用下劃線(xiàn)_跳過(guò),如:
復(fù)制代碼代碼如下:

let (name,  _, age) = ("Bannings" ,true, 22)  

那么在使用Switch時(shí),同樣支持這項(xiàng)特性:
復(fù)制代碼代碼如下:

let request = (true,"success")  
switch request {  
    case (_, "success"):  
        "success"   //被輸出  
    case (false, _):  
        "failed"  
    default:  
        "default"  
}  

對(duì)于不關(guān)心的值跳過(guò),只要滿(mǎn)足另一個(gè)值就行了。需要注意一點(diǎn)的是,如果元組中的值也是數(shù)字類(lèi)型,那么也是可以用區(qū)間運(yùn)算符的:
復(fù)制代碼代碼如下:

let request = (10,"failed")  
switch request {  
    case (_, "success"):  
        "success"  
    case (1 ... 10, _):  
        "1~10"    //被輸出  
    default:  
        "default"  
}  

Value Binding
針對(duì)元組,Switch還支持類(lèi)似于Optional Binding的Value Binding,就是能把元組中的各個(gè)值提取出來(lái),然后直接在下面使用:
復(fù)制代碼代碼如下:

let request = (0,"success")  
switch request {  
    case (0, let state):  
        state    //被輸出:success  
    case (let errorCode, _):  
        "error code is /(errorCode)"  
}  // 涵蓋了所有可能的case,不用寫(xiě)default了  

這樣也是可以的:
復(fù)制代碼代碼如下:

let request = (0,"success")  
switch request {  
    case let (errorCode, state):  
        state    //被輸出:success  
    case (let errorCode, _):  
        "error code is /(errorCode)"  
}  

把let放在外面和放在里面為每一個(gè)元素單獨(dú)寫(xiě)上let是等價(jià)的。
當(dāng)你在一個(gè)case里使用Value Binding的時(shí)候,如果你同時(shí)也在它的上一個(gè)case里使用了fallthrough,這是編譯器所不允許的,你可能會(huì)收到這樣一個(gè)編譯錯(cuò)誤:
 條件切換語(yǔ)句,case,Swift
只要把下面的errorCode去掉就行了,當(dāng)然,考慮好自己的邏輯。

 

支持額外的邏輯判斷
在使用Switch語(yǔ)句時(shí),Switch會(huì)適當(dāng)?shù)貙?dǎo)向相應(yīng)的case部分,這其實(shí)就相當(dāng)于做了一次邏輯判斷,但Swift的Switch語(yǔ)句還支持額外的邏輯判斷:

復(fù)制代碼代碼如下:

let request = (0,"success")  
switch request {  
    case (0, let state) where state != "success":  
        state  
    case (let errorCode, _):  
        "error code is /(errorCode)"//被輸出:"error code is 0"  
}  

這同樣很酷,相信在某種情況下會(huì)派上大用場(chǎng)。

 

總結(jié)
Swift對(duì)Switch進(jìn)行了大大增強(qiáng),使Switch的靈活性得到了很大提升,這是激動(dòng)人心的改變,但是如果掌控不好其中的變化,可能會(huì)使你在進(jìn)行錯(cuò)誤排查時(shí)增加難度,也會(huì)使代碼復(fù)雜度變高。在適當(dāng)?shù)貢r(shí)候靈活運(yùn)用,保持頭腦清晰總是有益的。



注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到swift教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
91精品一区二区三区综合在线爱| 国产对白videos麻豆高潮| 992kp快乐看片永久免费网址| 麻豆av一区二区三区久久| 国产不卡高清在线观看视频| 欧美**字幕| 一级黄色片网址| 波多野结衣50连登视频| 久久久久久久久黄色| 亚洲午夜18毛片在线看| 久久免费区一区二区三波多野| www.在线欧美| 小处雏高清一区二区三区| 99理论电影网| 蜜桃久久久久| 中文有码在线观看| 哺乳一区二区三区中文视频| 成年男女免费视频网站不卡| 色天天色综合| 韩国女主播成人在线观看| 日韩亚洲欧美在线观看| 亚洲激情电影中文字幕| 久久女同精品一区二区| 久久免费视频网站| 国产欧美一区二区三区精品酒店| jizz亚洲女人高潮大叫| 色婷婷香蕉在线一区二区| 影音欧美亚洲| 四虎4hu永久免费入口| 亚洲色图视频免费播放| 亚洲国产www| 岛国av午夜精品| 精品日本一区二区三区在线观看| 蜜桃视频在线观看网站| 亚洲黄色免费av| 视频一区二区三区免费观看| 91久久国产精品91久久性色| 久久久国产在线视频| 国产无遮挡猛进猛出免费软件| 国产精品冒白浆免费视频| 天堂综合网久久| 亚洲av成人无码网天堂| 亚洲综合社区| 狠狠色狠狠色综合日日91app| 在线观看自拍| 欧美日韩一区二区在线播放| 亚洲欧美一区二区三区| 欧美日韩性生活视频| 国产女人18毛片水18精品| 青青草久久伊人| 精品一区二区三区免费毛片爱| 日韩激情在线观看| 精品国产一区二区三区在线观看| 中日韩黄色大片| 懂色av蜜桃av| 午夜激情影院| 青青草国产成人99久久| 亚洲色欲久久久综合网东京热| 国产在线拍偷自揄拍精品| 日本精品裸体写真集在线观看| 久久se精品一区二区| 久久毛片亚洲| 天堂在线观看一卡二卡三卡四卡| 国产一区二区三区网| 国产白浆在线免费观看| 欧美日韩电影在线观看| 日韩午夜视频在线观看| 日本v片在线高清不卡在线观看| 樱花草在线观看www| eeuss在线观看| 黑人精品无码一区二区三区AV| 神马久久资源| 亚洲爆乳无码专区| 国产综合18久久久久久| 免费观看成人网| 91精品视频网| 亚洲人高潮女人毛茸茸| 欧美变态tickling挠脚心| 精品一区精品二区高清| 成年人的黄色片| 九色porny丨精品自拍视频| 中文字幕不卡在线播放| 91美女片黄在线| 性一交一乱一区二区洋洋av| 国产情侣高潮对白| 亚洲一区二区中文| 欧美精品在线一区二区| 污污网址在线观看| 国产不卡视频一区| 久久精品亚洲人成影院| 男人添女荫道口喷水视频| 日本一级理论片在线大全| 国产丶欧美丶日本不卡视频| 成人福利网站在线观看| 草草在线视频| 欧美黄页在线免费观看| 黄色免费观看视频网站| 国产精品成人国产乱一区| 中文字幕一区二区在线观看视频| 日本少妇高清视频| 丝瓜av网站精品一区二区| 北条麻妃在线一区| 日韩精品91亚洲二区在线观看| 欧美亚洲在线观看| h网站在线播放| 欧洲一区二区视频| 精品视频久久| 午夜视频免费播放| 极品蜜桃臀肥臀-x88av| 国精产品一区一区三区mba桃花| 美女毛片在线看| 天天干天天干天天干天天干天天干| 99re在线视频观看| 亚洲人成网亚洲欧洲无码| 国产精品情侣呻吟对白视频| 欧美激情黑人| 精品久久久久久综合日本| 神马电影网我不卡| 国产精品第三页| 成人网在线免费视频| 国产精品456| 中文字幕在线永久在线视频2020| 亚洲福利视频久久| 少妇高潮久久久久久潘金莲| 久久精品网址| 中文字幕一精品亚洲无线一区| 国产偷国产偷亚洲高清97cao| 亚洲国产精品va在线看黑人动漫| 亚洲黄色免费看| 天天射天天综合网| 亚洲精品av在线播放| 欧美精品videossex性护士| 欧美色图免费看| 国产成人啪午夜精品网站男同| 亚洲最大成人在线观看| 最近免费中文字幕在线第一页| 亚洲综合国产| 韩国精品美女www爽爽爽视频| 伊人网在线播放| 欧美丝袜丝nylons| 欧美国产高潮xxxx1819| 一本一道久久a久久综合蜜桃| 日韩在线观看电影完整版高清免费悬疑悬疑| 99精品国产99久久久久久福利| 蜜桃传媒在线| 欧洲视频一区二区| 高清欧美性猛交xxxx黑人猛交| www.久久久久| 91极品在线| 国产精品一区二区无码对白| 欧美日韩成人免费观看| 日本h片久久| 91无套直看片红桃在线观看| 黄色片子免费| 三级在线观看免费大全| 爱福利视频一区| 天天操天天干天天舔| 国产露出视频在线观看| 久久精品男女| 日本私人影院在线观看| 亚洲成av人影院在线观看网| 懂色av中文字幕一区二区三区| 国产免费一区二区视频| 香蕉网站在线观看| 日韩电影在线免费看| 在线免费观看av片| 亚洲综合网av| 麻豆国产精品va在线观看不卡| 国产黄色在线| 韩国日本在线视频| 天码人妻一区二区三区在线看| 一区二区三区四区精品| 欧美日韩综合一区| 国产老头和老头xxxx×| 免费看涩涩视频软件| 亚洲综合免费观看高清完整版在线| 日韩中文字幕麻豆| 黄色福利在线观看| 麻豆av在线导航| 香蕉成人伊视频在线观看| 亚洲激情 欧美| 亚洲色图欧美视频| 国产丝袜在线播放| 欧美精品色一区二区三区| 久久99热国产| 国产亚洲精品久久久久久久| 国产九九视频一区二区三区| 久久久久久久久久久久久久久久久久久| 色猫咪免费人成网站在线观看| 国产主播在线看| 精品国产乱子伦| 国产成人av影视| 欧美日韩播放| h视频免费观看| 牛人盗摄一区二区三区视频| 日本a级c片免费看三区| 国产精品极品美女粉嫩高清在线| 国产三级第一页| 国产精品亚洲专一区二区三区| 日本高清成人免费播放| 久草在线新免费首页资源站| 无码免费一区二区三区免费播放| 免费a在线观看播放| 欧美日韩在线视频一区二区| 日韩精品成人在线| 国产精品大全| 蜜臀av性久久久久av蜜臀妖精| 日韩美女在线看免费观看| 一级一片免费视频| 国产精品对白交换视频| 国产综合色激情| 国产精品无码久久久久成人app| 99视频在线观看免费| 日本一区二区三区四区高清视频| 色婷婷av777| 日本成年免费网站| 亚洲欧美日韩偷拍| 欧美h片在线观看| 欧美一区二区三区爱爱| 成人动漫一区二区在线| 亚洲一级一级97网| 97久久精品人人做人人爽| 欧美aaaxxxx做受视频| 经典三级久久| 精品国产免费一区二区三区| 91麻豆精品久久久久蜜臀| 黑丝一区二区三区| 男女av一区三区二区色多| 日韩精品免费在线视频| 天天操天天摸天天舔| 久久99久久久久久| 69视频在线播放| 国产在线观看一区二区| 成人91在线观看| 国产午夜精品全部视频播放| 翔田千里在线视频| 欧美性xxxx极品hd欧美风情| 国产亚洲综合在线| 日本午夜精品久久久| 在线中文字幕一区| 天天干天天干天天干| 日本网址在线观看| 1024免费在线视频| 欧美女孩性生活视频| 国产精品无码99re| 国产.欧美.日韩| 九九国产精品视频| 欧美成人伊人久久综合网| 一区二区三区四区高清视频| 成人免费视频网址| 精品国产视频| 激情综合丁香| 亚洲国产图片| 91国在线精品国内播放| 在线午夜精品自拍| 五月天婷婷激情| 国产精品久久久久aaaa九色| 欧美在线视频免费播放| 亚洲午夜久久| 亚洲午夜久久久久| 无码人妻少妇色欲av一区二区| 免费成人美女女| 亚洲av毛片在线观看| 国产精品嫩草影院精东| 91精品久久久久久久久不口人| 国产午夜精品全部视频在线播放| 日韩欧美国产wwwww| 亚洲欧洲精品一区| 91视频在线免费| 亚洲一级理论片| 国产精品久线在线观看| 午夜电影一区二区| 午夜在线视频免费| 手机看片福利视频| 日本jizzcom| 暗呦丨小u女国产精品| 国产亚洲精品久久久久久牛牛| 精品国产免费一区二区三区香蕉| 天堂www在线а√天堂| 国产精品毛片一区二区在线看舒淇| 2022国产精品视频| 成人高清一区| 黄页网站大全一区二区| 日韩精品免费播放| 日韩欧美激情在线| 免费成年人高清视频| 精品国产一区二区三区无码| 97视频在线观看成人| 亚洲成人av片| 久久久亚洲精品一区二区三区| jizzjizz19| 亚洲免费在线看| 台湾佬成人网| 亚洲免费伊人电影| 99视频免费在线观看| 日本成人免费在线| 亚洲欧洲韩国日本视频| 青青影院一区二区三区四区| 成人精品视频在线| 国产中文字幕一区二区三区| 中文精品电影| 麻豆成人久久精品二区三区红| 国产欧美精品日韩| 污视频网站免费观看| 精品久久久久久亚洲综合网| 美女av一区二区| 女教师淫辱の教室蜜臀av软件| 欧美日韩一区二区电影| 亚洲综合极品香蕉久久网| 欧美日韩成人在线视频| 欧美成人久久久免费播放| 91在线视频导航| a√在线中文网新版址在线| 亚洲www在线| 久久久电影免费观看完整版| 久久网免费视频| 久久久久久久久久久久久国产| 亚洲国产欧美国产综合一区| 国产精品久久久一区二区| 日韩av在线不卡| 亚洲特级毛片| 久久久久久久久久久97| 国产大学生自拍视频| 91香蕉网站| 天天天天天天天天操| 男人日女人视频网站| 欧美专区中文字幕| 国产午夜精品一区理论片飘花|