欢迎来到天天文库
浏览记录
ID:48743563
大小:329.00 KB
页数:37页
时间:2020-01-21
《第4章 选择结构程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第4章选择结构程序设计北京科技大学计算机系C语言程序设计提出问题:自然语言:如果…则…否则…C语言:分支语句问题1:如何根据收入,确定他的纳税比例及纳税额?问题2如何根据学生的分数判断是否及格?202本章主要内容4.1if语句4.1.1if语句的一般形式4.1.2if语句的嵌套4.2switch语句4.2.1switch语句的一般形式4.2.2break语句4.3选择结构程序设计举例203简单分支语句语句一般格式if(表达式)语句功能:计算表达式的值,如果是一个非0值(即逻辑真),就执行内嵌语句,否则(即逻辑假)跳过内嵌语句,顺序执行后续语句。内嵌语句,可为:赋值语句函数调用语句控制语句复合语
2、句空语句可为算术、关系、逻辑、赋值等合法的表达式204简单分支语句的算法:例如:⑴if(x>0)m++;⑵if(a>b){c=a;a=b;b=c;}表达式非0TF语句N-S结构图语句流程图NY表达式非0?205双重分支语句语句一般格式if(表达式)语句1else语句2功能:计算表达式的值,如果它的值是一个非0值(逻辑真),就执行内嵌语句1,之后跳过内嵌语句2,执行后续语句;否则跳过内嵌语句1,执行内嵌语句2,之后执行后续语句。206双重分支语句的算法:例如:⑴if(x>0)m++;elsem--;⑵if(ch>='a'&&ch<='z'){ch=ch-32;printf("%c",ch);
3、}elseprintf("%c",ch);表达式非0TF语句1语句2N-S结构图语句1语句2流程图NY表达式非0?207多重分支语句语句一般格式if(表达式1)语句1elseif(表达式2)语句2……elseif(表达式m)语句melse语句n功能:依次计算并判断表达式i,为非0时执行后面的语句,都为0时,执行语句n无论执行完哪个语句分支,都转到后续语句208多重分支语句的算法流程图表达式2?表达式1?语句n语句1语句2语句m…YNYNNY表达式m?209多重分支语句的算法N-S结构图表达式1?TF表达式2?语句1TF语句2…表达式m?TF语句m语句n例如:if(a<0)x=-1;else
4、if(a==0)x=0;elsex=1;2010if语句的简单应用【例4.1】输入一个字符,如果是大写字母,则将其转换为小写字母输出,否则直接输出。输入:用getchar或scnaf函数ch是否为大写字母:ch>='A'&&ch<='Z'(或ch>=65&&ch<=90)大写字母转换为小写字母:ch=ch+32输出:用putchar或printf函数思路:2011程序:#include"stdio.h"main(){charch;ch=getchar();if(ch>='A'&&ch<='Z')ch=ch+32;printf("%c",ch);}程序运行情况如下:Gg运行jc4_1可使用
5、条件表达式代替putchar(ch>='A'&&ch<='Z'?ch+32:ch);putchar('')20124.1.2if语句的嵌套如果if的内嵌语句中又使用了一个if语句,则构成if语句的嵌套。【例4.a】比较两个整数的关系。#includemain(){intx,y;printf("EnterintegerXandY:");scanf("%d%d",&x,&y);if(x!=y)if(x>y)printf("X>Y");elseprintf("X6、_aif(x!=y)if(x>y)printf("X>Y");elseprintf("X=50)printf("50<=c<=100");elseprintf("c<50");elseif(c<=150)printf("1007、0");elseprintf("c>150");⑶if(c<=100)if(c>=50)printf("50<=c<=100");elseprintf("c<50");例如:⑴if(c<=100)if(c>=50)printf("50<=c<=100");与哪个if配对?匹配规则:在嵌套的if~else语句中,else总是与上面的、离它最近的、在同一复合语句中还没有配对的if配
6、_aif(x!=y)if(x>y)printf("X>Y");elseprintf("X=50)printf("50<=c<=100");elseprintf("c<50");elseif(c<=150)printf("1007、0");elseprintf("c>150");⑶if(c<=100)if(c>=50)printf("50<=c<=100");elseprintf("c<50");例如:⑴if(c<=100)if(c>=50)printf("50<=c<=100");与哪个if配对?匹配规则:在嵌套的if~else语句中,else总是与上面的、离它最近的、在同一复合语句中还没有配对的if配
7、0");elseprintf("c>150");⑶if(c<=100)if(c>=50)printf("50<=c<=100");elseprintf("c<50");例如:⑴if(c<=100)if(c>=50)printf("50<=c<=100");与哪个if配对?匹配规则:在嵌套的if~else语句中,else总是与上面的、离它最近的、在同一复合语句中还没有配对的if配
此文档下载收益归作者所有