Objective-C - switch 语句


switch语句允许测试变量是否与值列表相等每个值称为一个 case,并且针对每个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语句中使用的表达式必须具有整型或枚举类型,或者属于类类型,其中该类具有到整型或枚举类型的单个转换函数。

  • 一个 switch 中可以有任意数量的 case 语句。每个案例后面都跟有要比较的值和冒号。

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

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

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

  • 并非每个案例都需要包含中断。如果没有出现中断,控制流将进入后续案例,直到达到中断为止。

  • switch语句可以有一个可选的default case,它必须出现在 switch 的末尾。当所有情况都不成立时,可以使用默认情况来执行任务。默认情况下不需要中断

流程图

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.htm