Objective-C switch 语句
switch 语句判断变量值是否等于列表值。每个值称为一个 case,并针对每个 case 值是否等于变量值,来执行 case 块的代码。
语法
Objective-C 编程语言中 switch 语句的语法如下:
switch(expression){case constant-expression :statement(s);break; /* 可选 */case constant-expression :statement(s);break; /* 可选 *//* 可以有任意数量的 case 语句 */default : /* 可选 */statement(s);}
以下规则适用于 switch 语句:
switch语句中使用的表达式必须具有整数或枚举类型,或者属于类类型,其中该类具有到整数或枚举类型的单个转换函数。- 在一个
switch中可以有任意数量的case语句。每个case后面都有要比较的值和一个冒号。 - 大小写的常量表达式必须与
switch中的变量的数据类型相同,并且必须是常量或常熟。 - 当打开的变量等于一个
case时,该case后面的语句将执行,直到到达break语句。 - 当到达
break语句时,switch终止,控制流跳到switch语句后的下一行。 - 并非每个
case都需要包含break。如果没有出现break,控制流将进入后续情况,直到达到break。 switch语句可以有一个可选的默认大小写,它必须出现在switch的末尾。当所有情况都不成立时,可以使用默认情况执行任务。默认情况下不需要break。
流程图

实例
#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;}
结果如下:
2022-07-07 22:44:26.928 demo[17555] Well done2022-07-07 22:44:26.929 demo[17555] Your grade is B