资源预览内容
第1页 / 共22页
第2页 / 共22页
第3页 / 共22页
第4页 / 共22页
第5页 / 共22页
第6页 / 共22页
第7页 / 共22页
第8页 / 共22页
第9页 / 共22页
第10页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第四章 选择结构程序设计 华侨大学计算机科学与技术学院 刘韶涛副教授,第四章 选择结构程序设计 内容提要 C语言判断语句 C语言if选择结构 C语言中的条件运算符 多分支选择语句 switchcase,if语句是C语言中用来做判断的功能语句,用于控制语句是否执行 形式如下: if(条件判断表达式) . ,什么是判断语句? 首先让计算机计算条件判断表达式,然后根据条件判断表达式的运算结果,为真(非0)或为假(0),将程序的运行控制权转向特殊的语句。,几个生活中判断语句的例子 如果下班早,去超市 如果天黑了,开灯 如果男生,做家务 如果年龄大于7岁,上小学 用C语言形式来表达 if(下班早)去超市 if(天黑了)开灯 if(男生)做家务 if(年龄大于7岁)上小学,4.2.1 单分支选择语句 if (判断表达式) 执行语句集合 后续执行语句 如果判断表达式得出的结果为真(非0),则先执行花括号中的执行语句集合,再执行花括号后的后续语句; 如果判断表达式得出的结果为假(0),则跳过花括号中的语句,直接执行花括号后的后续语句。,输出某整数的绝对值 void main() int i; printf(input an integer:); scanf(%d, ,4.2.2双分支选择语句 ifelse if(判断表达式) 执行语句集合1 else 执行语句集合2 后续语句 如果判断表达式得出的结果为真(非0),则先执行紧跟if判断表达式后的花括号中的执行语句集合1,再执行后续语句; 如果判断表达式得出的结果为假(0),则执行else后的花括号中的执行语句集合2,再执行后续语句。,双分支判断结构的流程图:,已知,一般车辆购置税计算公式为:车辆裸车总价1.1710%,而购买小排量汽车(1.6L及以下)的购置税的税率为购买大排量汽车税率的一半。编写程序,计算购买汽车时候需要缴纳的购置税为多少。,void main() float i,price,tax; printf(Engine displacement:); scanf(%f, ,4.2.3 多分支判断执行语句 ifelse ifelse ifelse 多分支语句在C语言中的一般表达形式为: if(判断表达式) 执行语句集合1 else if(判断表达式) 执行语句集合2 ,else if(判断表达式) 执行语句集合n else 执行语句集合n+1 后续语句,4.2.3 多分支判断执行语句 这种结构是从上到下逐个的对条件进行判断。 一旦条件判断表达式运算为真值,则执行相关的语句集合,并结束整个判断语句,其他的情况会被跳过。 如果所有的条件判断表达式均为假值,则执行else所对应的执行语句集合。,判断由键盘输入的字符是数字,大写,小写,还是其他字符,#includestdio.h void main() char c; printf(input a character: ); c=getchar(); if (c=0 ,else if(c=a ,4.2.4 if的嵌套 在if语句中的执行语句集合中包含其它if语句,这样的情况,被称为if的嵌套。 if嵌套的一般形式如下: if(判断表达式) if(判断表达式) 执行语句集合 或者,if(判断表达式) if(判断表达式) 执行语句集合1 else 执行语句集合2 else 执行语句集合3 后续语句,4.2.4 if的嵌套 在外层的if的执行语句集合中可能出现单独if的情况,也可能出现ifelse的情况。 可能出现多个if与多个else扎堆出现的情况。 C语言中规定,以else之前最近的if为配对的判断语句。 按照缩进的方式书写程序,能帮助避免配对错误,键盘输入两个数,判断这两个数的大小关系。,void main() int a,b; printf(please input two integers A and B: ); scanf(%d%d, ,else printf(A=Bn); ,条件运算符(? : ),问号?和冒号:是一对运算符,同时出现 条件表达式的一般形式: 条件表达式1?表达式1:表达式2 如果条件表达式1运算后的值为真,则整个表达式取表达式1值; 如果运算后值为假,则整个表达式取表达式2值,if(a b) min = a; else min = b;,min = (a b) ? a : b,使用条件运算符可以使程序看起来比较简洁 条件表达式只对单个变量的赋值,所以不能完全取代ifelse结构,switchcase是c语言提供的另外的一种多分支选择语句。 switchcase的一般形式为: switch(表达式) case (常量表达式1):执行语句集合1;break; case (常量表达式2):执行语句集合2;break; case (常量表达式3):执行语句集合3;break; case (常量表达式n):执行语句集合n;break default:执行语句集合(n+1); ,switchcase: 在switchcase语句中首先计算switch括号中的表达式的值, 逐个与之后的case常量表达式的值进行对比。 若表达式的值与某个case后的某个常量表达式的值相等,则执行这个case后的执行语句集合; 若表达式的值与全部case后的常量表达式的值均不相等,则执行default后的执行语句集合。 break是C中提供的跳出switchcase的语句。 在case后添加了break,表示在switch后的表达式与该case常量表达式等值后,执行对应的执行语句集合,再跳出switchcase语句; 若在case后无添加break,则一个case后的执行语句集合被执行,跟在后面的case语句的执行语句集合也被执行,一直到出现break跳出了switchcase为止,或执行完所有case的执行语句集合为止。,输入学生成绩,将之转换成五分制中的A(90100),B(8089),C(7079),D(6069),F(60以下),void main() int score, level; printf(input score:); scanf(%d,case 6: printf(Dn);break; case 7: printf(Cn);break; case 8: printf(Bn);break; case 9: case 10: printf(An);break; default:printf(error scoren); ,部分的case并没有break配对,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号