標籤:objective-c xcode 文法 switch
其實同C語言和Java,OC中也是有switch多分支語句,也可稱之為開關語句。文法也是極為相似的。下面我們來慢慢研究switch。
(一)代碼一:
int main(int argc, const char * argv[]) { @autoreleasepool { int i=6; switch (i) { case 1: NSLog(@"星期一"); break; case 2: NSLog(@"星期二"); break; case 3: NSLog(@"星期三"); break; case 4: NSLog(@"星期四"); break; case 5: NSLog(@"星期五"); break; case 6: NSLog(@"星期六"); break; case 7: NSLog(@"星期七"); break; } } return 0;}
輸出結果:
。
結果分析:其實switch語句完全可以使用if-else if語句來實現,只是代碼量看起來會比較冗餘,顯得不那麼cool。所以需要使用switch。switch語句就是來進行變數匹配,匹配到哪個case語句下面,就執行那個case下面的語句。遇到break,就退出整個switch,否則會繼續執行下去。
(二)代碼二:
int main(int argc, const char * argv[]) { @autoreleasepool { int i=3; switch (i) { case 1: NSLog(@"星期一"); case 2: NSLog(@"星期二"); case 3: NSLog(@"星期三"); case 4: NSLog(@"星期四"); case 5: NSLog(@"星期五"); case 6: NSLog(@"星期六"); case 7: NSLog(@"星期七"); } } return 0;}
輸出結果:
。
結果分析:如果在switch中沒有break語句,在case匹配到一個值時,並不會馬上退出switch,而是會繼續順序執行下面所有的case下的語句。
(三)代碼三:
int main(int argc, const char * argv[]) { @autoreleasepool { int i=9; switch (i){ case 1: NSLog(@"星期一"); break; case 2: NSLog(@"星期二"); break; case 3: NSLog(@"星期三"); break; case 4: NSLog(@"星期四"); break; case 5: NSLog(@"星期五"); break; case 6: NSLog(@"星期六"); break; case 7: NSLog(@"星期七"); break; default: NSLog(@"發生錯誤"); break; } } return 0;}
輸出結果:
。
結果分析:如果一個變數沒有匹配case中的任何內容,那麼最後將會匹配default。輸出default中的內容。
總結下,個人覺得switch語句的缺點就是不能在case後面進行條件判斷,這一點是區別於if-else if 的。只能是一個具體的值,不能是一個範圍。
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
Objective-C學習筆記(十二)——switch多分支語句的使用