switch
语句用于测试变量与值列表的相等性。每个值称为一个case
,并检查每个switch case
接通的变量。
语法
Objective-C编程语言中switch
语句的语法如下 -
switch(expression){
case constant-expression :
statement(s);
break; /* 可选 */
case constant-expression :
statement(s);
break; /* 可选 */
/* 可以有任意数量的case语句*/
default : /* 可选 */
statement(s);
}
以下规则适用于switch
语句 -
switch
语句中使用的表达式(expression
)必须具有整数或枚举类型,或者是类类型,其中类具有单个转换函数为整数或枚举类型。- 在
switch
中包含任意数量的case
语句,每个case
后跟要与之比较的值和冒号。 case
之后的constant-expression
必须与switch
中的变量具有相同的数据类型,并且必须是常量或文字。- 当接通的变量等于
case
时,case
之后的语句将一直执行,直到达到break
语句。 - 当达到
break
语句时,switch
终止,控制流跳转到switch
语句后面的下一行。 - 并非每个
break
都需要包含break
。 如果没有出现break
,则控制流将进入后续case
,直到达到break
。 switch
语句可以有一个可选的默认情况,它必须出现在switch
的末尾。 当没有任何case
匹配为真时,default
可用于执行任务。default
不需要包含break
语句。
流程图
示例代码
#import <Foundation/Foundation.h>
int main () {
/* 局布变量定义 */
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;
}
执行上面示例代码,得到以下结果:
2018-11-14 09:55:06.673 main[53795] Well done
2018-11-14 09:55:06.675 main[53795] Your grade is B