选择结构程序设计.ppt
,程序设计基础(1)第5章 选择结构程序设计,第5章 选择结构程序设计,关系运算符关系表达式逻辑运算符逻辑表达式ifswitch,知识点:关系、逻辑运算符及表达式;逻辑真/假;条件运算符;分支的概念及其算法描述;三种IF分支语句;SWITCH语句,关系运算,关系运算符:左结合比较两个变量之间的关系,=,=,!=a=b+cd(a=1,b=2,c=3,d=6),关系表达式用关系运算符连接的表达式ab,a+bc-d,(a=3)n2(n1n2)!=n3n1n2n3 思考:上式中,任意改变n1或n2的值,会影响整个表达式的值吗?(n1n2)+n3,n1n2n3,逻辑运算左结合,逻辑运算符:&,|,!运算规则优先级!&|!算术运算 关系运算&|赋值运算,(ab)&(xy)!a|xy&b=a|!a+1,逻辑表达式(x=0)&(x5)表达式的值逻辑“真”或“假”整数”0”表示“假”“非0”表示“真”已知num=12!numnum=1&num31,任何类型的数据都可进行逻辑运算!10,a|b,在计算逻辑表达式时,只有在必须执行下一表达式才能求解时,才求解该表达式已知m、n、p、q、x、y 的值分别为1、2、3、4、1、1(x=mn)&(y=pq)(x=mq),选择结构程序设计,if 语句,if(表达式)语句1;else语句2;,if(表达式)语句1;,if(x=0)if(ab&cd)if(x100)if(5)if(a),关键点每个分支上只有一条语句表达式要放在括号里else必须和if配对使用,if(xy)printf(“%d”,x);注意“;”位置,if(xy)printf(“%d”,x);else printf(“%d”,y);注意分号“;”位置,程序示例,问题描述:求三个数中的最大值,算法描述:1.输入n1,n2,n32.将n1和n2的大数存入max3.将n3和max的大数存入max4.输出max,分析问题:设三个数:n1,n2,n3最大值为max,均为整数,如果 n1n2那么 max=n1否则 max=n2,如果 n3max 那么 max=n3,算法分析将n1与n2相比,大数送入max再将n3与max比较,大数送入max,流程图,开始,输入n1,n2,n3,输出max,结 束,n1n2,n1max,n2max,T,F,n3max,n3max,T,F,顺序结构,选择结构 1,选择结构2,程序示例,关键点注意程序书写的格式注意if,else的配对要有清晰,准确的逻辑三个浮点数的最大值?三个字符的最大值?n个数的最大值?,条件运算符“?”代替if语句,表达式1?表达式2:表达式3C语言中唯一的三目运算符其运算过程,相当于一个ifelse控制结构,例5.4 p104大写转换成小写输出,复合语句,问题描述:任意两个数x,y,将大数放入x,将小数放入y.,算法描述:1.输入x,y2.大数放入x,小数放入y3.输出x,y,如果 xy那么 交换x和y 的值,t=x;x=y;y=t;,流程图,开 始,输入x,y,输出x,y,结束,xy?,xt,T,F,yx,ty,顺序结构,选择结构,程序示例,关键点复合语句的书写格式注意它对程序执行过程的影响它引起的错误很致命很难察觉养成好习惯很重要,选择结构嵌套,嵌套的选择结构,if(条件1)语句1;else if(条件2)语句2;else 语句3;,关键点ifelse如何配对复合语句,程序示例,开 始,输入score,输出”非常好”,结束,score=90?,F,T,选择结构,score=60?,输出”较好”,输出”差”,T,F,顺序结构,问题描述:根据输入的成绩,给出成绩的等级。,程序示例,关键点:注意ifelse的配对注意程序的格式保持清晰的逻辑你也可以用多个并列的if来完成,请比较其区别.,程序示例,问题描述:求解方程:ax2+bx+c=0要求:输入任意三个实系数a,b,c给出所有可能的解,程序示例,关键点:注意ifelse的配对注意程序的格式保持清晰的逻辑注意复合语句,格式:switch(表达式)表达式=常量表达式n 执行语句m case 常量表达式1:语句1;break;case 常量表达式2:语句2;break;case 常量表达式n:语句m;break;default:语句m+1;,switch语句-多分支选择语句,switch语句,语法是怎样执行的?break;起什么作用?适用于多分支的选择结构,关键点switch的表达式必须是int或charcase后面只能是一个常量,程序示例,问题描述:根据车型及行驶的里程计算各种车辆的收费额收费标准:小汽车:0.5元/公里卡车:1.0元/公里大客车:1.5元/公里,算法描述:(1)输入车型type,行驶里程mile(2)计算费用(3)输出费用,根据(车型)case 小汽车:单价=0.5 case 卡 车:单价=1.0 case 大客车:单价=1.5,行驶费=单价*里程,怎样输入车型?,程序示例,关键点switch的表达式必须是int或charcase后面只能是一个常量,程序示例,问题描述:输入分数输出对应的成绩等级分A,B,C,D,E五个等级,关键点共用case字句break;的作用,P106 例5.5 判断某一年是否是闰年(自学),小结,关系运算符关系表达式逻辑运算符逻辑表达式ifswitch,课外学习任务,练习题,正确的if语句一般形式应该是:A、if(表达式)语句1 else 语句2;B、if(表达式)语句1;语句n;else 语句2;语句m;C、if(表达式)语句1;else 语句2;,C,练习题,下列程序段,当X=0,Y=0时执行哪一句?if(X0)if(Y2)语句2;else语句3;语句4;,D,