第4章 分支结构程序设计_第1页
第4章 分支结构程序设计_第2页
第4章 分支结构程序设计_第3页
第4章 分支结构程序设计_第4页
第4章 分支结构程序设计_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、语言程序设计1第第4 4章章 分支结构程序设计分支结构程序设计语言程序设计2第第4 4章章 分支结构程序设计分支结构程序设计4.14.1关系运算符和关系表达式关系运算符和关系表达式4.24.2逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式4.3 if4.3 if语句以及用语句以及用ifif语句构成的分支结构语句构成的分支结构4.4 switch4.4 switch语句以及用语句以及用switchswitch语句和语句和breakbreak语句语句构成的分支结构构成的分支结构4.54.5程序举例程序举例主要内容:主要内容:语言程序设计3第第4 4章章 分支结构程序设计分支结构程序设计4.14.1关

2、系运算符和关系表达式关系运算符和关系表达式 4.1.1 4.1.1 关系运算符关系运算符 C C语言提供以下语言提供以下6 6种关系运算符:种关系运算符:(1) (1) ( (大于大于) )(2)=(2)=(大于等于)(大于等于)(3)(3)(小于)(小于)(4)=(4)=(小于等于)(小于等于)(5)=(5)=(等于)(等于)(6)!=(6)!=(不等于)(不等于)语言程序设计4第第4 4章章 分支结构程序设计分支结构程序设计关系运算符都是双目运算符,其结合性为从关系运算符都是双目运算符,其结合性为从左到右。关系成立,则关系运算的的值为左到右。关系成立,则关系运算的的值为1 1,即,即逻辑逻

3、辑“真真”;关系不成立,则关系运算的值为;关系不成立,则关系运算的值为0 0,即逻辑即逻辑“假假”。例如:例如: 3535 ( (值为值为1) 1) 5!=3 5!=3 (值为(值为1 1) 5=35=3 (值为(值为0 0) aba 、=、 、=bcabcx=yz x=yz 语言程序设计6第第4 4章章 分支结构程序设计分支结构程序设计关系运算符的优先级低于算术运算符,但高关系运算符的优先级低于算术运算符,但高于赋值运算符。于赋值运算符。 例如:例如:x=yzx=yz等价于等价于x=(yz)x=(yz),先计算,先计算yzyab+cb+c等价于等价于a(a(b+cb+c) )。语言程序设计7

4、第第4 4章章 分支结构程序设计分支结构程序设计如果如果a a和和b b都是实型数据,应避免使用都是实型数据,应避免使用a=ba=b这样这样的关系表达式,因为在内存中存放的实型数据是的关系表达式,因为在内存中存放的实型数据是有误差的。有误差的。注意赋值运算符注意赋值运算符“=”=”和关系运算符和关系运算符“=”=”的区别。的区别。语言程序设计8第第4 4章章 分支结构程序设计分支结构程序设计4.1.2 4.1.2 关系表达式关系表达式 由关系运算符构成的表达式,称关系表达式。由关系运算符构成的表达式,称关系表达式。关系运算符两边的运算对象可以是关系运算符两边的运算对象可以是C C语言中任意合语

5、言中任意合法的表达式。法的表达式。 关系表达式的值为关系表达式的值为“逻辑值逻辑值”,即,即“真真”和和“假假”,“真真”用整数用整数1 1来表示,来表示,“假假”用整数用整数0 0来表来表示。示。语言程序设计9第第4 4章章 分支结构程序设计分支结构程序设计以下都是合法的关系表达式:以下都是合法的关系表达式: a+ba+b c+dc+d (a=3)(b=5) (a=3)(b=5) x!=y x!=y ac=c ac=c a+1=b a+1=b A+32=B A+32=B【例例4.14.1】关系运算符和关系表达式举例。关系运算符和关系表达式举例。 #include #include void

6、main() void main() intint a=3,b=5,c=23; a=3,b=5,c=23; char char chch=A;=A; printf(%d,%dn,aprintf(%d,%dn,a b,ab,a b+cb+c);); printf(%d,%dn,aprintf(%d,%dn,a!=!=ch,cch,c=a+ba+b);); printf(%d,%dn,aprintf(%d,%dn,ac,ch+32=a);c,ch+32=a); 运行结果:运行结果:0,10,11,01,00,10,1语言程序设计10第第4 4章章 分支结构程序设计分支结构程序设计4.24.2逻辑运

7、算符和逻辑表达式逻辑运算符和逻辑表达式 4.2.1 4.2.1 逻辑运算符逻辑运算符 在在C C语言中,选择条件不仅可以由关系表达语言中,选择条件不仅可以由关系表达式组成,还可以由逻辑表达式组成,进行逻辑判式组成,还可以由逻辑表达式组成,进行逻辑判断时,数据的值为非断时,数据的值为非0 0,即为逻辑,即为逻辑“真真”,数据,数据的值为的值为0 0,即为逻辑,即为逻辑“假假”。逻辑运算与关系运。逻辑运算与关系运算的结果都是算的结果都是“逻辑值逻辑值”,即,即“真真”或或“假,分假,分别用整数别用整数1 1和和0 0表示。表示。语言程序设计11第第4 4章章 分支结构程序设计分支结构程序设计 C

8、C语言提供了语言提供了3 3种逻辑运算符:种逻辑运算符: (1) (1) !(逻辑(逻辑“非非”) (2)&(2)&(逻辑(逻辑“与与”) (3)|(3)| (逻辑(逻辑“或或”) 逻辑运算符的结合性为从左到右。逻辑运算符的结合性为从左到右。 当参与逻辑当参与逻辑“与与”(&)运算的两个操作)运算的两个操作数都为数都为“真真”,结果才为,结果才为“真真”。 当参与逻辑当参与逻辑“或或”(|)运算的两个操作)运算的两个操作数中只要有一个为数中只要有一个为“真真”,结果就为,结果就为“真真”。语言程序设计12第第4 4章章 分支结构程序设计分支结构程序设计说明:说明: 3

9、3种逻辑运算符的优先级从高到低是:种逻辑运算符的优先级从高到低是:! !、&、|。 逻辑运算符与关系运算符、算术运算符、赋值逻辑运算符与关系运算符、算术运算符、赋值运算符之间的优先级从高到低是:!(逻辑运算符之间的优先级从高到低是:!(逻辑“非非”)、算术运算符、关系运算符、逻辑运算)、算术运算符、关系运算符、逻辑运算符(符(&和和|)、赋值运算符。)、赋值运算符。例如:例如:x=x=a+ba+b c&!c+dc&!c+d等价于:等价于:x=(x=(a+ba+b)c&(!c)+dc&(!c)+d)语言程序设计13第第4 4章章 分支结构程序设计分

10、支结构程序设计关于逻辑运算符关于逻辑运算符“!”例如:例如:!(ab)!(ab)/ /* *等价于等价于a=ba!(ab)&(cb)&(c=d)=d) / /* *等价于等价于(a=(ad)d)* */ /在在C C语言中,由语言中,由“&”&”或或“|”|”构成的逻辑表达构成的逻辑表达式,在某些情况下会产生式,在某些情况下会产生“短路短路”。例如:例如: intint a=0,b=1; a=0,b=1; a+&ba+&b+;+; printf(%d,%dn,a,bprintf(%d,%dn,a,b););输出:输出:1,1 1,1 再如:再如:

11、 intint a=0,b=1; a=0,b=1; a+|ba+|b+;+; printf(%d,%dn,a,bprintf(%d,%dn,a,b););输出:输出:1,21,2语言程序设计14第第4 4章章 分支结构程序设计分支结构程序设计4.2.2 4.2.2 逻辑表达式逻辑表达式 由逻辑运算符构成的表达式,称为逻辑由逻辑运算符构成的表达式,称为逻辑表达式。逻辑运算符两边的运算对象可以是表达式。逻辑运算符两边的运算对象可以是C C语言中任意合法的表达式。语言中任意合法的表达式。 逻辑表达式的值为逻辑表达式的值为“逻辑值逻辑值”,即,即“真真”和和“假假”,“真真”用整数用整数1 1来表示,

12、来表示,“假假”用整数用整数0 0来表示。来表示。语言程序设计15第第4 4章章 分支结构程序设计分支结构程序设计以下都是合法的逻辑表达式:以下都是合法的逻辑表达式: a+3b-5&!ca+3b-5&!c a|b&ca|b&c x+y&xx+y&xyy !a !a【例例4.24.2】逻辑运算符和逻辑表达式举例逻辑运算符和逻辑表达式举例 #include #include void main() void main() intint a=3,b=5,c=23; a=3,b=5,c=23; intint x=9,y=10; x=9,y=10; pri

13、ntf(%d,%dnprintf(%d,%dn, a+3b-5&!c, , a+3b-5&!c, a|b&ca|b&c);); printf(%d,%dnprintf(%d,%dn, , x+y&xx+y&xy, !a);b)b) a+; a+;/ /* *ifif子句子句* */ /b+;b+;再如:再如:if(aif(ab)b) a+; a+; b+; b+;/ /* *此复合语句是此复合语句是ifif子句子句* */ / c+; c+;语言程序设计20第第4 4章章 分支结构程序设计分支结构程序设计说明:说明:ifif后面一对圆括号中的表达

14、式可以是任意后面一对圆括号中的表达式可以是任意合法的表达式,如:合法的表达式,如:关系表达式,如关系表达式,如xyxy逻辑表达式,如逻辑表达式,如aab&bb&bc c 算术表达式,如算术表达式,如a+ba+b赋值表达式,如赋值表达式,如x=y x=y 变量,如变量,如a a常量,如常量,如-5-5自增(自增(+)、自减()、自减(-)也可以出现在条件)也可以出现在条件表达式里,如表达式里,如x+yx+y语言程序设计21第第4 4章章 分支结构程序设计分支结构程序设计例如:例如:if(xif(x=y)=y) printf(%dn,xprintf(%dn,x+);+);print

15、f(%dnprintf(%dn, +y);, +y);再如:再如:if(aif(a+b)+b) printf(%dn,a/bprintf(%dn,a/b););printf(%dnprintf(%dn, , a%ba%b););语言程序设计22第第4 4章章 分支结构程序设计分支结构程序设计使用使用ifif语句要注意以下几个方面:语句要注意以下几个方面:(1)if(1)if是是C C语言的关键字,必须小写,而且语言的关键字,必须小写,而且ifif后面的后面的一对圆括号不能省略。一对圆括号不能省略。(2)(2)不要轻易在不要轻易在ifif后面的一对圆括号后面加分号,后面的一对圆括号后面加分号,否

16、则会出现错误或改变了否则会出现错误或改变了ifif的子句。的子句。例如:例如:if(aif(ab)b); a+;a+;b+;b+;语言程序设计23第第4 4章章 分支结构程序设计分支结构程序设计2.2.双分支双分支ifif语句。语句格式如下:语句。语句格式如下: if(if(表达式表达式) ) 语句语句1 1; else else 语句语句2 2;语句执行过程如下:语句执行过程如下:首先计算紧跟在首先计算紧跟在ifif后面一对圆括号中的表达式的值。后面一对圆括号中的表达式的值。(1)(1)如果表达式的值为如果表达式的值为“真真”,则执行其后的,则执行其后的ifif子句,子句,即其下面的最近的一

17、条语句或其下面最近的复合语句即其下面的最近的一条语句或其下面最近的复合语句,然后再去执行,然后再去执行ifif语句后面的其他语句。语句后面的其他语句。(2)(2)如果表达式的值为如果表达式的值为“假假”,则跳过,则跳过ifif子句,去执行子句,去执行elseelse子句,然后再去执行子句,然后再去执行ifif语句后面的其他语句。语句后面的其他语句。语言程序设计24第第4 4章章 分支结构程序设计分支结构程序设计其执行过程可用下面流程图来表示:其执行过程可用下面流程图来表示:图图4.2 4.2 双分支选择结构的执行过程双分支选择结构的执行过程语言程序设计25第第4 4章章 分支结构程序设计分支结

18、构程序设计例如:例如:if(aif(ab)b) printf(%dn,aprintf(%dn,a);); / /* *ifif子句子句* */ / else else printf(%dn,bprintf(%dn,b););/ /* *elseelse子句子句* */ /使用使用ififelse else 语句应注意以下几个方面:语句应注意以下几个方面:(1)if(1)if和和elseelse都是都是C C语言的关键字,必须小写。语言的关键字,必须小写。(2)else(2)else不是一条独立的语句,不能单独出现,不是一条独立的语句,不能单独出现,必须与必须与ifif配对使用,配对的原则是:配

19、对使用,配对的原则是:elseelse与其上与其上面最近的且没使用的面最近的且没使用的ifif配对。配对。 语言程序设计26第第4 4章章 分支结构程序设计分支结构程序设计 #include#include void main() void main() intint a=2,b=-1,c=2; a=2,b=-1,c=2; if(aif(ab)b) if(bif(b0) c=0;0) c=0; else c+=1; else c+=1; printf(cprintf(c=%=%d,cd,c);); 【例例4.34.3】分析下面程序分析下面程序 运行结果:运行结果:c=2c=2语言程序设计27第

20、第4 4章章 分支结构程序设计分支结构程序设计在在ifif和和elseelse之间不能出现第二条语句或第二条复之间不能出现第二条语句或第二条复合语句,否则会出现错误提示。合语句,否则会出现错误提示。例如:例如:if(xif(x=y)=y) x+; x+; printf(%dn,xprintf(%dn,x););else else printf(%dn,xprintf(%dn,x* *y);y);改写成:改写成:if(xif(x=y)=y)x+;x+; printf(%dn,xprintf(%dn,x););else else printf(%dn,xprintf(%dn,x* *y);y);语

21、言程序设计28第第4 4章章 分支结构程序设计分支结构程序设计#include#include main( ) main( ) intint a,b,c,maxa,b,c,max; ; printf(Enterprintf(Enter a,b,ca,b,c:n);n); scanf(%d%d%d,&a,&b,&cscanf(%d%d%d,&a,&b,&c);); max=a; max=a; if (bmax) if (bmax) max=b; max=b; if (cmax) if (cmax) max=c; max=c; printf(maxp

22、rintf(max=%=%dn,maxdn,max);); 运行结果:运行结果:Enter Enter a,b,ca,b,c:3 5 63 5 6 max=6max=6【例例4.44.4】输入三个整数输入三个整数a a、b b、c c,要求输出最大的数。,要求输出最大的数。语言程序设计29第第4 4章章 分支结构程序设计分支结构程序设计4.3.2 4.3.2 嵌套的嵌套的ifif语句语句 1.1.在在ifif语句中嵌套不含语句中嵌套不含elseelse子句的子句的ifif语句语句语句格式如下:语句格式如下: if( if(表达式表达式1)1) if( if(表达式表达式2) 2) 语句语句1

23、1; / /* *ifif子句子句* */ / else else 语句语句2 2;注意:上述语句格式中的一对花括号注意:上述语句格式中的一对花括号不能省不能省略,如果省略了一对花括号略,如果省略了一对花括号,则则elseelse就会与就会与第二个第二个ifif配对,形成了如下形式:配对,形成了如下形式:语言程序设计30第第4 4章章 分支结构程序设计分支结构程序设计if(if(表达式表达式1)1) if( if(表达式表达式2) 2) 语句语句1 1; else else 语句语句2 2;等价于:等价于:if(if(表达式表达式1)1) if( if(表达式表达式2) 2) 语句语句1 1;

24、 else else 语句语句2 2; 例如:例如: if(aif(a) ) if(bif(b) b+; ) b+; else a+; else a+; 假设假设a a和和b b的初值都为的初值都为0 0,上述程序段执行后:,上述程序段执行后:a=1a=1,b=0b=0。如果去掉上述程序段中的一对花括号。如果去掉上述程序段中的一对花括号,则上述程序段执行后:则上述程序段执行后:a=0a=0,b=0b=0。 语言程序设计31第第4 4章章 分支结构程序设计分支结构程序设计2.2.在在ifif语句中嵌套含有语句中嵌套含有elseelse子句的子句的ifif语句语句 语句格式如下:语句格式如下: i

25、f(if(表达式表达式1)1) if( if(表达式表达式2) 2) 语句语句1 1; else else 语句语句2 2; else else 语句语句3 3; 例如:例如: intint a=2,b=4,c=0; a=2,b=4,c=0; if(aif(a) ) if(!bif(!b) c=a1;) c=a1; else c=b1; else c+=1; else c+=1;程序运行后,程序运行后,c c的值等于的值等于2 2。 语言程序设计32第第4 4章章 分支结构程序设计分支结构程序设计3.3.在在elseelse子句中嵌套不含子句中嵌套不含elseelse子句的子句的ifif语句语

26、句语句格式如下:语句格式如下:if(if(表达式表达式1) 1) 语句语句1 1; else else if( if(表达式表达式2) 2) 语句语句2 2;或写成:或写成:if(if(表达式表达式1) 1) 语句语句1 1;else if(else if(表达式表达式2) 2) 语句语句2 2;语言程序设计33第第4 4章章 分支结构程序设计分支结构程序设计例如:例如: intint a=6,b=9,c; a=6,b=9,c; if(aif(a=b)=b) c= c=abab; ; else else if(aif(ab) c=b) c=a|ba|b; ;程序运行后,程序运行后,c c的值等

27、于的值等于1515。4.4.在在elseelse子句中嵌套含有子句中嵌套含有elseelse子句的子句的ifif语句语句 语句格式如下:语句格式如下: if( if(表达式表达式1) 1) 语句语句1 1; else else if( if(表达式表达式2) 2) 语句语句2 2; else else 语句语句3 3; 语言程序设计34第第4 4章章 分支结构程序设计分支结构程序设计【例例4.54.5】根据输入的学生成绩输出相应的等级,大根据输入的学生成绩输出相应的等级,大于或等于于或等于9090分以上的等级为分以上的等级为A A,大于或等于,大于或等于8080分并且分并且小于小于9090分的

28、等级为分的等级为B B,以此类推,每,以此类推,每1010分为一个等级,分为一个等级,6060分以下的等级为分以下的等级为E E。 #include#include void main()void main() intint score; score; printf(Inputprintf(Input score:); score:); scanf(%d,&scorescanf(%d,&score);); if(scoreif(score=90) =90) printf(Theprintf(The %d is belong to % %d is belong to %cn,sc

29、ore,Acn,score,A);); else else if(scoreif(score=80) =80) printf(Theprintf(The %d is belong to % %d is belong to %cn,score,Bcn,score,B);); else else if(scoreif(score=70) =70) printf(Theprintf(The %d is belong to % %d is belong to %cn,score,Ccn,score,C);); else else if(scoreif(score=60) =60) printf(The

30、printf(The %d is belong to % %d is belong to %cn,score,Dcn,score,D);); else else printf(Theprintf(The %d is belong to % %d is belong to %cn,score,Ecn,score,E);); 程序运行结果:程序运行结果:Input score:85Input score:85 The 85 is belong to BThe 85 is belong to BInput score:56Input score:56 The 56 is belong to E Th

31、e 56 is belong to E 语言程序设计35第第4 4章章 分支结构程序设计分支结构程序设计上述程序的执行过程可用下面流程图来表示:上述程序的执行过程可用下面流程图来表示:语言程序设计36第第4 4章章 分支结构程序设计分支结构程序设计4.3.3 4.3.3 条件表达式构成的分支结构条件表达式构成的分支结构 条件运算符是由条件运算符是由“?”?”和和“:”组成的,它是一组成的,它是一个三目运算符,即要求有三个运算对象。个三目运算符,即要求有三个运算对象。 由条件运算符构成的条件表达式的一般形式为:由条件运算符构成的条件表达式的一般形式为: 表达式表达式1 1?表达式?表达式2 2:

32、表达式:表达式3 3 执行过程为:如果表达式执行过程为:如果表达式1 1的值为真,则以表达的值为真,则以表达式式2 2 的值作为条件表达式的值,否则以表达式的值作为条件表达式的值,否则以表达式3 3的的值作为整个条件表达式的值。值作为整个条件表达式的值。 语言程序设计37第第4 4章章 分支结构程序设计分支结构程序设计条件表达式通常用于赋值语句之中。条件表达式通常用于赋值语句之中。例如条件语句:例如条件语句: if(aif(ab) max=a;b) max=a; else max=b; else max=b;可用条件表达式写为可用条件表达式写为 max=(amax=(ab)?a:bb)?a:b

33、; ;使用条件表达式时,还应注意以下几点:使用条件表达式时,还应注意以下几点:条件运算符的运算优先级低于关系运算符和条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值符。算术运算符,但高于赋值符。 语言程序设计38第第4 4章章 分支结构程序设计分支结构程序设计条件运算符条件运算符? ?和:是一对运算符,不能分开单和:是一对运算符,不能分开单独使用。独使用。条件运算符的结合方向是自右至左。条件运算符的结合方向是自右至左。 例如:例如:aab?a:cb?a:c d?c:dd?c:d应理解为应理解为aab?a:(cb?a:(c d?c:dd?c:d) )例如例如: int a=6,b=3

34、,c=9,d=7,t1,t2;int a=6,b=3,c=9,d=7,t1,t2; t1= ab?a:(cd?c:d); t1= ab?a:(cd?c:d); t2=ab?(ac?d:c):d; t2=ab?(ac?d:c):d; printf(t1=%dnt2=%dn,t1,t2); printf(t1=%dnt2=%dn,t1,t2);程序运行结果:程序运行结果:t1=6t1=6t2=9t2=9语言程序设计39第第4 4章章 分支结构程序设计分支结构程序设计4.4 switch4.4 switch语句以及用语句以及用switchswitch语句和语句和breakbreak语语句构成的分支结

35、构句构成的分支结构4.4.1 switch4.4.1 switch语句及用语句及用switchswitch语句构成的分支结构语句构成的分支结构1.switch1.switch语句的格式语句的格式 switch(switch(表达式表达式) ) case case 常量表达式常量表达式1 1:语句组:语句组1 1或空;或空; case case 常量表达式常量表达式2 2:语句组:语句组2 2或空;或空;case case 常量表达式常量表达式n n:语句组:语句组n n或空;或空;defaultdefault:缺省语句组;:缺省语句组; 语言程序设计40第第4 4章章 分支结构程序设计分支结构

36、程序设计在使用在使用switchswitch语句时,应注意以下几点:语句时,应注意以下几点: switchswitch后面的表达式可以是整型常量或变量、字后面的表达式可以是整型常量或变量、字符常量或变量、关系表达式、逻辑表达式、整型算符常量或变量、关系表达式、逻辑表达式、整型算术表达式等。术表达式等。casecase后面的常量表达式可以为任何整型数据或字后面的常量表达式可以为任何整型数据或字符型数据但不能是变量。符型数据但不能是变量。每一个每一个casecase的常量表达式的值必须互不相同,否的常量表达式的值必须互不相同,否则就会出现互相矛盾的现象。则就会出现互相矛盾的现象。 每个每个case

37、case或或defaultdefault后的语句可以是语句组,但后的语句可以是语句组,但不需要使用不需要使用“”和和“”括起来。括起来。语言程序设计41第第4 4章章 分支结构程序设计分支结构程序设计多个多个casecase可以共用同一组执行语句。可以共用同一组执行语句。关键字关键字csaecsae和后面的常量表达式之间一定要有和后面的常量表达式之间一定要有空格。空格。 defaultdefault语句可以缺省也可以放在花括号内的语句可以缺省也可以放在花括号内的任意位置(不一定放在最后),如果缺省,而任意位置(不一定放在最后),如果缺省,而且所有且所有casecase后面的常量表达式的值与后面

38、的常量表达式的值与switchswitch后后面的表达式的值不等,则什么也不执行,直接面的表达式的值不等,则什么也不执行,直接退出退出switchswitch语句。语句。switchswitch结构也可以嵌套,即在一个结构也可以嵌套,即在一个switchswitch语语句中嵌套另一个句中嵌套另一个switchswitch语句。语句。语言程序设计42第第4 4章章 分支结构程序设计分支结构程序设计(1)(1)首先计算首先计算switchswitch后面的一对小括号中的表达后面的一对小括号中的表达式的值。式的值。(2)(2)在在switchswitch语句体内寻找与其相匹配的常量表语句体内寻找与其

39、相匹配的常量表达式(值),如果找到了,则开始执行其后面的达式(值),如果找到了,则开始执行其后面的语句组,包括执行其后的所有语句组,包括执行其后的所有casecase和和defaultdefault中中的语句组,直到的语句组,直到switchswitch语句结束;如果没有找到,语句结束;如果没有找到,需要分两种情况,一是有需要分两种情况,一是有defaultdefault,则开始执行,则开始执行defaultdefault后面的语句,包括执行后面的语句,包括执行defaultdefault后面所有后面所有casecase中的语句组;二是没有中的语句组;二是没有defaultdefault,则跳

40、过,则跳过switchswitch语句体,去执行语句体,去执行switchswitch语句之后的其他语语句之后的其他语句。句。2.switch2.switch语句执行过程语句执行过程语言程序设计43第第4 4章章 分支结构程序设计分支结构程序设计【例例4.74.7】用用switchswitch语句改写例语句改写例4.54.5#include#include void main()void main() intint score; score; printf(Inputprintf(Input score:); score:); scanf(%d,&scorescanf(%d,&

41、score);); switch(score/10) switch(score/10) case 10: case 10: case 9: case 9: printf(Theprintf(The %d is belong to % %d is belong to %cncn, score,Ascore,A);); case 8: case 8: printf(Theprintf(The %d is belong to % %d is belong to %cncn, score,Bscore,B);); case 7: case 7: printf(Theprintf(The %d is b

42、elong to % %d is belong to %cncn, score,Cscore,C);); case 6: case 6: printf(Theprintf(The %d is belong to % %d is belong to %cncn, score,Dscore,D);); default: default: printf(Theprintf(The %d is belong to % %d is belong to %cncn, score,Escore,E);); 程序执行结果为:程序执行结果为:Input score:85Input score:85 The 85

43、 is belong to BThe 85 is belong to BThe 85 is belong to CThe 85 is belong to CThe 85 is belong to DThe 85 is belong to DThe 85 is belong to EThe 85 is belong to E语言程序设计44第第4 4章章 分支结构程序设计分支结构程序设计4.4.2 4.4.2 在在switchswitch语句体中使用语句体中使用breakbreak语句语句breakbreak语句的作用是:跳出本层的语句的作用是:跳出本层的switchswitch语句。语句。【例

44、例4.84.8】用用switchswitch语句和语句和breakbreak语句联合改写例语句联合改写例4.74.7#include#include void main()void main() intint score; score; printf(Inputprintf(Input score:); score:); scanf(%d,&scorescanf(%d,&score);); switch(score/10) switch(score/10) case 10: case 10: case 9: case 9: printf(Theprintf(The %d is

45、belong to % %d is belong to %cncn, score,A);breakscore,A);break; ; case 8: case 8: printf(Theprintf(The %d is belong to % %d is belong to %cncn, score,Bscore,B); break;); break; case 7: case 7: printf(Theprintf(The %d is belong to % %d is belong to %cncn, score,Cscore,C); break;); break; case 6: cas

46、e 6: printf(Theprintf(The %d is belong to % %d is belong to %cncn, score,Dscore,D); break;); break; default: default: printf(Theprintf(The %d is belong to % %d is belong to %cncn, score,Escore,E);); 程序运行结果:程序运行结果:Input score:85Input score:85 The 85 is belong to BThe 85 is belong to BInput score:56In

47、put score:56 The 56 is belong to EThe 56 is belong to E语言程序设计45第第4 4章章 分支结构程序设计分支结构程序设计4.54.5程序举例程序举例【例例4.94.9】从键盘输入两个整数,要求由小到大输出从键盘输入两个整数,要求由小到大输出#include#include void main()void main() int a,b,t, int a,b,t,* *pa=&a,pa=&a,* *pb=&b;pb=&b;printf(Input a,b:);printf(Input a,b:);scanf(%d

48、,%d,&a,&b);scanf(%d,%d,&a,&b);if(ab)if(ab)t=t=* *pa;pa;* *pa=pa=* *pb;pb;* *pb=t;pb=t;printfprintf(“na=%d,b=%dn”,“na=%d,b=%dn”,* *pa,pa,* *pbpb);); 程序运行结果:程序运行结果:Input a,b:5,3Input a,b:5,3 a=3,b=5 a=3,b=5 语言程序设计46第第4 4章章 分支结构程序设计分支结构程序设计【例例4.104.10】从键盘输入一个整数,判断其是奇数还从键盘输入一个整数,判断其是奇数还是

49、偶数是偶数#include#include void main()void main() int x,y; int x,y; printf(Input x:); printf(Input x:); scanf(%d,&xscanf(%d,&x);); if(x%2=0) if(x%2=0) printf(%dprintf(%d is is 偶数偶数 n,xn,x);); else else printf(%dprintf(%d is is 奇数奇数 n,xn,x);); 程序运行结果:程序运行结果:Input x:5Input x:5 5 is 5 is 奇数奇数语言程序设计4

50、7第第4 4章章 分支结构程序设计分支结构程序设计【例例4.114.11】分析下面的程序分析下面的程序#include#include main()main() intint a=2,b=-1,c=2; a=2,b=-1,c=2; if(aif(a+b)+b) if(bif(b0) c=0;0) c=0; else c+=1; else c+=1; printf(aprintf(a=%=%d,bd,b=%=%d,cd,c=%=%dn,a,b,cdn,a,b,c);); 程序运行结果:程序运行结果:a=3,b=-1,c=2a=3,b=-1,c=2语言程序设计48第第4 4章章 分支结构程序设计分支结构程序设计【例例4.124.12】完成下面的分段函数完成下面的分段函数 y=y=)100.(1)0.(1)05.(xxxxxx#include#include void main()void main() int x,y; int x,y; printf(Input x(-5x10):); printf(Input x(-5x-5&x-5&x0) y=x; el

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论