switch(表达式)
{
case 常量或常量表达式1:
语句1;
break;
case 常量或常量表达式2:
语句1;
break;
.....
case 常量或常量表达式n:
语句n;
break;
default :
语句n+1;
}
计算表达式的值,并逐个与其后面的常量或常量表达式值相比较,当switch上的表达式的值与某个case下的常量表达式的值相等时,即执行其后的语句。如:switch表达式的值与所有case后面的常量表达式均不相同时,则执行default后的语句。
另外须特别注意的是,如果你忘了写break语句的话,当switch表达式的值与某个case常量表达式的值相等时,系统执行所有case后的语句。
例题:
int i=4;
switch (i){
case 1:
NSLog(@"我是1");
break;
case 2:
NSLog(@"我是2");
break;
case 3:
NSLog(@"我是3");
break;
default:
NSLog(@"我不是1,2,3");
break;
}
程序结果:我不是1,2,3
程序详解:当程序执行switch语句的时候,发现i的值是4,于是将其和每个case后面的数字进行比较。发现不等于的时候跳到后面的case语句再次进行类似的比较,直到比较结束,发现都不符合条件,于是执行default中的语句,将"我不是1,2,3"打印到控制台上,然后通过break语句结束整个switch语句。