1、问问 题题 引引 出出1.1.双路分支是标准的二选一执行的情形双路分支是标准的二选一执行的情形2.2.通过嵌套可以实现多重选择通过嵌套可以实现多重选择,不过结构比较复杂不过结构比较复杂3.3.今天介绍两个实现多重选择的语句今天介绍两个实现多重选择的语句if.else ifif.else ifswitch-caseswitch-case主主 要要 内内 容容3.3 3.3 多路分支多路分支3.3.1 switch3.3.1 switch语句语句3.3.2 if3.3.2 ifelse ifelse if语句语句目的要求目的要求复习思考题复习思考题3.3.1 switch3.3.1 switch语
2、句语句1.1.语句结构语句结构带带的部分可以带的部分可以带也可以不带也可以不带(1)switch(1)switch后括号中的后括号中的expressionexpression必须是必须是整型表达式整型表达式2.2.注意事项注意事项举举例例若有下面的定义:若有下面的定义:intint x=100;x=100;floatfloat score=99.5;score=99.5;则以下的则以下的switchswitch语句:语句:switch(x)switch(x)/*合法,合法,x x是整型是整型 */switch(score)switch(score)/*非法,非法,scorescore不是整型不
3、是整型 */switch(switch((intint)score)score)/*合法,合法,(int)score(int)score是整型是整型 */举举例例若有以下定义:若有以下定义:#define N 2#define N 2 intint m=3;m=3;则下列的各则下列的各case:case:case 2:case 2:/*合法,合法,2 2是整型常量是整型常量 */case 2+2:case 2+2:/*合法,合法,2+22+2是整型常量表达式是整型常量表达式 */case A:case A:/*合法,合法,AA是整型常量表达式是整型常量表达式 */case N:case N:/
4、*合法,合法,N N是整型常量是整型常量 */case m:case m:/*非法,非法,m m是变量是变量 */(2)(2)每个每个casecase后必须是后必须是整型常量表达式整型常量表达式,且每个值必须不同,且每个值必须不同(3)(3)每个每个casecase后跟冒号后跟冒号(4)(4)各各casecase的顺序任意的顺序任意(5)(5)允许几个允许几个casecase执行同一操作执行同一操作(只有此时不带只有此时不带breakbreak语句语句)casecase 1:1:casecase 2:2:casecase 3:printf(“Hello Switch case!n”);3:pr
5、intf(“Hello Switch case!n”);执行的过程执行的过程:先计算先计算expressionexpression的值,用这个值从的值,用这个值从前到后与每个前到后与每个casecase后面的值进行比较,后面的值进行比较,若二者相等,则执若二者相等,则执行该行该casecase及其后面及其后面所有所有casecase所带的语所带的语句一次,包括句一次,包括defaultdefault后的语句,后的语句,若没有一个若没有一个casecase的的值与求得的值相等值与求得的值相等就执行就执行defaultdefault后的后的语句语句 (6 6)不带)不带breakbreak语句语句
6、执行的过程执行的过程:先计算先计算expressionexpression的值,用这个值从前到后与每个的值,用这个值从前到后与每个casecase后面的值进行比后面的值进行比较,若二者相等,则执行该较,若二者相等,则执行该casecase后的语句就退出整个后的语句就退出整个switchswitch结构,若没结构,若没有一个有一个casecase的值与求得的值相等就执行的值与求得的值相等就执行defaultdefault后的语句后的语句 (7 7)带)带breakbreak语句语句3.3.2 if3.3.2 ifelse ifelse if语句语句1.1.流程图与语句结构流程图与语句结构2.2.
7、三点说明三点说明(1)if.else if(1)if.else if是是ifif嵌套结构的一种紧凑形式嵌套结构的一种紧凑形式(2)if.else if(2)if.else if使用语法不象使用语法不象switchswitch那样严格那样严格(3)switch(3)switch语句结构更简洁语句结构更简洁,但使用的限制比较多但使用的限制比较多目目 的的 要要 求求1.1.掌握掌握switchswitch语句的使用方法语句的使用方法2.2.掌握掌握ififelse ifelse if语句的使用方法语句的使用方法复习思考题复习思考题说明:题目前面的说明:题目前面的*代表问题的重要程度代表问题的重要程度*1.switch1.switch语句的结构和执行情况如何语句的结构和执行情况如何?*2.2.使用使用switchswitch语句时应该注意什么?语句时应该注意什么?*3.if.else if3.if.else if语句的结构和执行情况如何语句的结构和执行情况如何?