Objective-C - switch 语句

switch 语句允许测试变量是否与值列表相等。 每个值称为一个案例,并且为每个switch case切换案例检查正在打开的变量。


语法

Objective-C 编程语言中 switch 语句的语法如下 −

switch(expression){
   case constant-expression  :
      statement(s);
      break; /* optional */
   case constant-expression  :
      statement(s);
      break; /* optional */
  
   /* you can have any number of case statements */
   default : /* Optional */
      statement(s);
}

以下规则适用于 switch 语句 −

  • switch 语句中使用的 expression 表达式必须具有整型或枚举类型,或者属于类类型,其中该类具有到整型或整型的单个转换函数 枚举类型。

  • 您可以在一个开关中包含任意数量的 case 语句。 每个案例后跟要比较的值和一个冒号。

  • case 的 constant-expression 必须与 switch 中的变量具有相同的数据类型,并且必须是常量或文字。

  • 当打开的变量等于一个 case 时,该 case 之后的语句将执行,直到到达 break 语句。

  • 当到达 break 语句时,switch 终止,控制流跳转到 switch 语句之后的下一行。

  • 不是每个 case 都需要包含一个break。 如果没有出现break,控制流将落入到后续的情况,直到达到break。

  • 一个 switch 语句可以有一个可选的 default case,它必须出现在 switch 的末尾。default 案例可用于在所有案例都不为真时执行任务。 default 默认情况下不需要break


流程图

Objective-C 中的 switch 语句

示例

#import <Foundation/Foundation.h>
 
int main () {
   
   /* local variable definition */
   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;
}

当上面的代码被编译和执行时,会产生如下结果 −

2013-09-07 22:44:26.928 demo[17555] Well done
2013-09-07 22:44:26.929 demo[17555] Your grade is  B
objective_c_decision_making.html