Objective-C switch 语句

switch 语句判断变量值是否等于列表值。每个值称为一个 case,并针对每个 case 值是否等于变量值,来执行 case 块的代码。


语法

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

  1. switch(expression){
  2. case constant-expression :
  3. statement(s);
  4. break; /* 可选 */
  5. case constant-expression :
  6. statement(s);
  7. break; /* 可选 */
  8. /* 可以有任意数量的 case 语句 */
  9. default : /* 可选 */
  10. statement(s);
  11. }

以下规则适用于 switch 语句:

  • switch 语句中使用的表达式必须具有整数或枚举类型,或者属于类类型,其中该类具有到整数或枚举类型的单个转换函数。
  • 在一个 switch 中可以有任意数量的 case 语句。每个 case 后面都有要比较的值和一个冒号。
  • 大小写的常量表达式必须与 switch 中的变量的数据类型相同,并且必须是常量或常熟。
  • 当打开的变量等于一个 case 时,该 case 后面的语句将执行,直到到达 break 语句。
  • 当到达 break 语句时,switch 终止,控制流跳到 switch 语句后的下一行。
  • 并非每个 case 都需要包含 break。如果没有出现 break,控制流将进入后续情况,直到达到 break
  • switch 语句可以有一个可选的默认大小写,它必须出现在 switch 的末尾。当所有情况都不成立时,可以使用默认情况执行任务。默认情况下不需要 break

流程图


实例

  1. #import <Foundation/Foundation.h>
  2. int main () {
  3. /* local variable definition */
  4. char grade = 'B';
  5. switch(grade) {
  6. case 'A' :
  7. NSLog(@"Excellent!\n" );
  8. break;
  9. case 'B' :
  10. case 'C' :
  11. NSLog(@"Well done\n" );
  12. break;
  13. case 'D' :
  14. NSLog(@"You passed\n" );
  15. break;
  16. case 'F' :
  17. NSLog(@"Better try again\n" );
  18. break;
  19. default :
  20. NSLog(@"Invalid grade\n" );
  21. }
  22. NSLog(@"Your grade is %c\n", grade );
  23. return 0;
  24. }

结果如下:

  1. 2022-07-07 22:44:26.928 demo[17555] Well done
  2. 2022-07-07 22:44:26.929 demo[17555] Your grade is B

分类导航