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 done
2022-07-07 22:44:26.929 demo[17555] Your grade is B