Objective-C switch語句

2019-10-16 23:15:16

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