资源描述:
《新编C语言程序设计教程 (周学毛)第5章课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章选择结构程序设计5.1if语句5.2switch语句5.3goto语句5.4程序设计举例5.1if语句5.1.1单分支if语句格式:if(条件表达式)语句功能:先计算条件表达式的值,如果条件表达式的值为真(非0),执行语句(选择体),否则执行if语句的下一条语句。NS图:见图5-1之(a)。图5-1例如:(1)如果x>0,输出x。if(x>0)printf(″x=%f″,x);(2)如果a等于b,输出″a=b″。if(a==b)printf(″%s″,″a=b″);说明:(1)条
2、件表达式必须用小括号括起,同时注意区分作为条件的表达式与作为数值的表达式。(2)if语句中要选择执行的语句称为选择体,选择体从语法上只能是一条语句,如果选择体需多条语句描述,必须采用复合语句。例如:如果x>0,求x的平方根。(1)将结果放入变量y中;(2)输出x的平方根。if(x>0){y=sqrt(x);printf(″平方根=%f″,y);}(3)不管选择体多么复杂,包含多少条语句,if语句逻辑上是一条语句,后面的双分支if语句、多分支if语句、switch语句、循环语句均是逻
3、辑上的一条语句。例5–1计算y,。提示:x等于1函数无定义。程序如下:/*程序5-1,求函数值*/main(){floatx;floaty;printf(″请输入x:″);scanf(″%f″,&x);if(x!=1){y=(x+1)/(x-1);printf(″x=%6.2f,y=%6.2f″,x,y);}}输入数据:1.2运行结果:x=1.20,y=11.005.1.2双分支if语句格式:if(条件表达式)语句1else语句2功能:先计算条件表达式的值,如果条件表
4、达式的值为真(非0),执行语句1(选择体1),否则执行语句2(选择体2),if语句执行完后执行if语句的下条语句。NS图:见图5-1之(b)。例如:(1)如果x>0,输出x大于0,否则输出x小于等于0。if(x>0)printf(″x大于0″);elseprintf(″x小于等于0″);(2)如果a等于b,输出a等于b,否则输出a不等于b。if(a==b)printf(″a等于b″);elseprintf(“a不等于b″);(3)求两个数x、y的最大值max。if(x>y)max=x;
5、elsemax=y;(4)判断整数i的奇偶性。if(i%2==0)printf(″偶数″);elseprintf(″奇数″);(1)双分支if语句形式上相当于单分支if语句扩展else分支而来,else分支称为else子句,else子句不能单独存在。(2)在其它高级语言中特别强调else子句前不能有分号,C语言中else子句前必有分号。(3)选择体如为多条语句同样必须采用复合语句。(4)可采用条件运算等价实现,从而以表达式的形式参与运算。例如,上例中三个双分支if语句用条件运算描
6、述:①(x>0)?printf(″x大于0″):printf(″x小于等于0″)②(a==b)?printf(″a等于b″):printf(″a不等于b″)③(x>y)?max=x:max=y(5)单分支if语句可认为是双分支if语句缺省else子句的特殊情况,一条双分支if语句可用两条单分支if语句实现。例如,前例中三条双分支if语句改用单分支if语句实现:①if(x>0)printf(″x大于0″);if(x<=0)printf(″x小于等于0″);②if(a==b)printf(″a
7、等于b″);if(a![KG-*2]=b)printf(″a不等于b″);③if(x>y)max=x;if(x<=y)max=y;例5–2计算/*程序5-2,求函数值*/main(){floatx;floaty;printf(″请输入x:″);scanf(″%f″,&x);if(x>1)y=x+1;elsey=x-1;printf(″x=%6.2f,y=%6.2f″,x,y);}输入数据:1.2运行结果:x=1.20,y=2.00例5–3输入两个数,求两个数的最大值
8、、最小值。数据分析:输入量:两个数x、y,float输出量:最大值max、最小值min,float算法分析:①输入两个数x、y②比较两个数x、y大小如果x>y,max=x,min=y如果x