第4-2课 选择结构程序.doc

上传人:pu****.1 文档编号:561933387 上传时间:2022-10-15 格式:DOC 页数:7 大小:66.01KB
返回 下载 相关 举报
第4-2课 选择结构程序.doc_第1页
第1页 / 共7页
第4-2课 选择结构程序.doc_第2页
第2页 / 共7页
第4-2课 选择结构程序.doc_第3页
第3页 / 共7页
第4-2课 选择结构程序.doc_第4页
第4页 / 共7页
第4-2课 选择结构程序.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《第4-2课 选择结构程序.doc》由会员分享,可在线阅读,更多相关《第4-2课 选择结构程序.doc(7页珍藏版)》请在金锄头文库上搜索。

1、第4-2课 选择结构程序一、教学目标 1、if语句 if语句的三种形式 if语句的嵌套 条件运算符和条件表达式2、switch语句二、教学过程1、复习if 语句2、复习if else语句3、第三种形式为if-else-if形式 if(表达式1) 语句1; else if(表达式2) 语句2; else if(表达式m) 语句m; else 语句n;其语义是:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个if语句之外继续执行程序。 如果所有的表达式均为假,则执行语句n。然后继续执行后续程序。 if-else-if语句的执行过程如图33所示。【例-】输入成绩判断等级(多条

2、件,多分支语句)main()int cj;scanf(%d,&cj);printf(cj=%dn,cj);if(cj=60 & cj=70 & cj=80 & cj=90 & cjb)a+; b+;elsea=0; b=10;5、if语句的嵌套 当if语句中的执行语句又是if语句时,则构成了if 语句嵌套的情形。其一般形式可表示如下: if(表达式) if语句; 或者为 if(表达式) if语句; else if语句;在嵌套内的if语句可能又是if-else型的,这将会出现多个if和多个else重叠的情况,这时要特别注意if和else的配对问题。例如: if(表达式1) if(表达式2) 语句

3、1; else语句2;其中的else究竟是与哪一个if配对呢? 应该理解为: if(表达式1) if(表达式2) 语句1; else 语句2;还是应理解为: if(表达式1) if(表达式2) 语句1; else 语句2;为了避免这种二义性,语言规定,else 总是与它前面最近的if配对,因此对上述例子应按前一种情况理解。 【例-】main() int a,b; printf(please input A,B: ); scanf(%d%d,&a,&b); if(a!=b) if(ab) printf(ABn); else printf(AB、Ab) printf(ABn); else prin

4、tf(Ab) max=a; else max=b;可用条件表达式写为 max=(ab)?a:b;执行该语句的语义是:如ab为真,则把a赋予max,否则把b 赋予max。使用条件表达式时,还应注意以下几点: 1)条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值符。因此 max=(ab)?a:b可以去掉括号而写为 max=ab?a:b2)条件运算符?和:是一对运算符,不能分开单独使用。3)条件运算符的结合方向是自右至左。例如:ab?a:cd?c:d应理解为ab?a:(cd?c:d)这也就是条件表达式嵌套的情形,即其中的表达式3又是一个条件表达式。 【例-】main() int a,b,

5、max; printf(n input two numbers: ); scanf(%d%d,&a,&b); printf(max=%d,ab?a:b);7、Switch语句 语言还提供了另一种用于多分支选择的switch语句, 其一般形式为: switch(表达式) case常量表达式1: 语句1; case常量表达式2: 语句2; case常量表达式n: 语句n; default : 语句n+1; 其语义是:计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case和default中的语句,直到

6、switch结束。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。main()int n;scanf(%d,&n);switch(n) case 1:n=n+1;break; case 2:n=n+2; default:n=n+3; case 3:n=n+4; printf(n=%d,n);分析当输入1和4的时候,结果分别是多少【例】 main()float a,b;char c;scanf(%f%c%f,&a,&c,&b);switch(c) case + :printf(%fn,a+b);break; case - :printf(%fn,a-b);bre

7、ak; case * :printf(%fn,a*b);break; case / :printf(%fn,a/b);break; default:printf(input errorn); 语言还提供了一种break语句,专用于跳出switch语句,break 语句只有关键字break,没有参数 在使用switch语句时还应注意以下几点:1)在case后的各常量表达式的值不能相同,否则会出现错误。2)在case后,允许有多个语句,可以不用括起来。3)各case和default子句的先后顺序可以变动,而不会影响程序执行结果。4)default子句可以省略不用。三、课堂练习A)B)C)D) 编程

8、1:输入任意三个整数,按升序输出 main() int a,b,c; int k; scanf(%d%d%d,&a,&b,&c); if(ab) k=a;a=b;b=k; if(ac) k=a;a=c;c=k; if(bc) k=b;b=c;c=k; printf(%d,%d,%dn,a,b,c); 编程2:输入字符为大写改小写输出,输入字符为小写改大写输出,不是字符,则原样输出。 main() char ch;ch=getchar();if(ch=A&ch=a&ch0) s=s+1; if(ab) t=s+t; else if(a=b) t=5; else t=2*s; printf(s=%d,t=%dn,s,t);2、下列程序运行后的输出结果是( ) main()int a=1,b=2,c=3;if(c=a) printf(%dn,c);else print

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号