switch
語句用於測試變數與值列表的相等性。每個值稱為一個case
,並檢查每個switch case
接通的變數。
Objective-C程式設計語言中switch
語句的語法如下 -
switch(expression){
case constant-expression :
statement(s);
break; /* 可選 */
case constant-expression :
statement(s);
break; /* 可選 */
/* 可以有任意數量的case語句*/
default : /* 可選 */
statement(s);
}
以下規則適用於switch
語句 -
switch
語句中使用的表示式(expression
)必須具有整數或列舉型別,或者是類型別,其中類具有單個轉換函式為整數或列舉型別。switch
中包含任意數量的case
語句,每個case
後跟要與之比較的值和冒號。case
之後的constant-expression
必須與switch
中的變數具有相同的資料型別,並且必須是常數或文字。case
時,case
之後的語句將一直執行,直到達到break
語句。break
語句時,switch
終止,控制流跳轉到switch
語句後面的下一行。break
都需要包含break
。 如果沒有出現break
,則控制流將進入後續case
,直到達到break
。switch
語句可以有一個可選的預設情況,它必須出現在switch
的末尾。 當沒有任何case
匹配為真時,default
可用於執行任務。 default
不需要包含break
語句。流程圖
範例程式碼
#import <Foundation/Foundation.h>
int main () {
/* 局布變數定義 */
char grade = 'B';
switch(grade) {
case 'A' :
NSLog(@"Excellent!\n" );
break;
case 'B' :
case 'C' :
NSLog(@"Well done\n" );
break;
case 'D' :
NSLog(@"You passed\n" );
break;
case 'F' :
NSLog(@"Better try again\n" );
break;
default :
NSLog(@"Invalid grade\n" );
}
NSLog(@"Your grade is %c\n", grade );
return 0;
}
執行上面範例程式碼,得到以下結果:
2018-11-14 09:55:06.673 main[53795] Well done
2018-11-14 09:55:06.675 main[53795] Your grade is B