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 后面跟着要比较的值和一个冒号。

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

  • 当被切换的变量等于某个 case 时,该 case 后面的语句将一直执行,直到遇到break 语句。

  • 遇到break 语句时,switch 将终止,控制流跳转到 switch 语句后面的下一行。

  • 并非每个 case 都需要包含break。如果没有break,控制流将贯穿到后续的 case,直到遇到 break 为止。

  • switch 语句可以有一个可选的default case,它必须出现在 switch 的末尾。当没有一个 case 为真时,可以使用 default case 来执行任务。default case 中不需要break

流程图

switch statement in Objective-C

示例

#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
广告
© . All rights reserved.