switch语句 格式: switch(表达式) { case常量表达式1:语句1; case常量表达式2:语句2; ... case常量表达式n:语句n; default :语句n+1; }
第一:所有case后面的常量表达式为便于描述我们姑且称之为标签,这些标签只能是 (1)枚举常量 (2)数值常量 (3)字符常量 (4)常变量:只能赋予一个常数的变量,例:const int i;i = 5;将5赋予i之后,i的值只能是5,不能再被赋值,不能再改变 (5)宏名中的一种
第二:执行完一个case语句后,流程控制就转移到下一个case语句继续执行。"case"常量表达式只是起语句标号的作用,并不是在该处进行条件判断。在执行switch语句时,根据switch()中表达式的值找到与之匹配的case语句,就从此语句开始执行下去,不再进行判断
switch(i) { case 1: 语句1; case 2:语句2; default :语句3; case 3:语句4;
}
当i==1时,从case1处开始往下一个不落的执行,当i==2时,从case2处开始往下一个不落的执行,当i==3时,只执行case3一句,当i==4时,从default处开始往下一个不落的执行,当 i 等于1、2、3 之外的数字时,情况与i==4的一样
第三:switch是选择不是循环,如果在switch中出现了break语句。该语句的功能只是退出switch语句转去执行它下面的语句。在switch中出现continue是错误的,除非switch本身就属于for或while循环的一部分
/* 示例代码 switch语句示例 ** * 时间 2015-7-22 21:37 **/ # include <stdio.h>
int main() {
int val; printf("请输入一个楼层:\n"); scanf("%d", &val);
switch (val) { case 1: printf("1层开!!\n"); break; case 2: printf("2层开!!\n"); break; case 3: printf("3层开!!\n"); break; default: printf("aaaaa\n"); break; } printf("bbbb\n"); system("pause"); return 0; }
/* 输出结果: ---------------------- 加入break结果: ---------------------- 请输入一个楼层: 2 2层开!! bbbb 请按任意键继续. . . ---------------------- 不加入break结果: ---------------------- 请输入一个楼层: 1 1层开!! 2层开!! 3层开!! aaaaa 4层开!! bbbb 请按任意键继续. . . ---------------------- 请输入一个楼层: 6 aaaaa 4层开!! bbbb 请按任意键继续. . . ----------------------
*/
|