程序设计第三章.ppt
《程序设计第三章.ppt》由会员分享,可在线阅读,更多相关《程序设计第三章.ppt(44页珍藏版)》请在课桌文档上搜索。
1、1,第三章基本控制结构,if语句 switch语句 while语句 do-while语句 for语句 循环不变式,2,3.1 程序的基本控制结构,单语句:以分号“;”结束int a;变量定义语句a=3*2;表达式语句function(“example”);函数调用语句空语句:只有一个分号“;”复合语句(块语句)用花括号 括起来的若干条语句(可以是单语句、空语句、其他块语句),3,3.1.2单入口单出口控制结构,实现单入口单出口程序只需三种基本的控制结构 顺序结构选择结构当条件p(条件表达式)成立,则执行一个分支,否则执行另一个分支多路分支循环结构实现反复执行某一部分的操作循环结构三要素:循环条
2、件p循环体A循环变量:在每次循环中都必须有语句修改此变量的值,以使循环条件表达式的值可能改变,从而跳出循环,4,1)if 语句(无else),格式:if(表达式)语句;,表达式,值true或false,语句,可以是复合语句,void main()char ch;cinch;if(ch=a,3.2 选择结构,5,#includevoid main()int a,b,max;printf(n input two numbers:);scanf(%d%d,6,格式:if(表达式)语句1;else 语句2;,e?,yes,语句1,no,语句2,2)if-else语句,void main()int x;
3、cinx;if(x=0)coutx;else cout-x;,举例:输出|x|,7,例3.2.1 输入24小时制的时间,转换并输出12小时制的时间并注明是上午还是下午(上午用A.M表示,下午用P.M表示),#include void main()int hour;char noon=A;cout hour;if(hour 12)hour=hour-12;noon=P;cout The hour is hour noon.M.n;,如果去掉一对花括号,当输入值为6时,程序输出结果是什么?,8,例3.2.2,void main()int standing;/用户输入的工龄float standin
4、g_salary;/根据用户输入工龄计算出来的工龄工资cout standing;if(standing=0),9,嵌套if语句,if(表达式1)if(表达式2)子语句1;else子语句2;else 子语句3;if(表达式1)子语句1;else if(表达式2)子语句2;else if(表达式n)子语句n;else 子语句n1;,10,例3.2.3 从键盘上输入3个数A,B,C,求出三数中最大者并输出。,#include void main()int A,B,C,max;coutABC;max=A;if(Bmax)max=B;/求出A、B中的较/大值,记录在max中,然后再比较C与max if
5、(Cmax)max=C;cout MAX(A,B,C):maxn;,11,采用嵌套if语句来实现,if(A B)if(A C)cout C)coutMaximum is B;else coutMaximum is C;,12,垂悬else问题,if(p1)if(p2)a=1;else a=2;这样的语句会引起二义性,else子句不知道应该与哪个if语句配对。C+语言中是就近配对:if(p1)注意if与else的配if(p2)a=1;对关系,else总是else a=2;与它上面的最近的 if配对,13,注意问题,if语句中的表达式,一般为逻辑表达式或关系表达式else子句不能单独使用,必须与i
6、f配套使用if以及else语句后面都只含一个内嵌的操作语句,有效范围都只有一个语句,若需含多个操作,则须用 括起来。例:if(a+bc)coutc”;c=a+b;else cout“a+b=c”;,14,条件表达式短路求值,对逻辑表达式求值时,只有在必须执行下一个逻辑运算符才能求出整个表达式值的情况下,才执行该运算符 expression1&expression2/expression1为0,expression2不做 expression1|expression2/expression1非0,expression2不做,15,else if结构举例:,(1)征税问题:1000以下税率为3%1
7、0002000税率为4%20003000税率为5%3000以上税率6%输入收入求应缴税款。,void main()float x,rate;cinx;if(x1000)rate=0.03;else if(x2000)rate=0.04;else if(x3000)rate=0.05;else rate=0.06;coutx*rate;,3/100?,16,int main()int a;cina;if(a=90)cout=80)cout=70)cout=60)cout“The score is D”;else cout“The score is E”;return 0;,(2)输入一个分数,将
8、百分制转化为五分制。90分以上 打印 A80-90 打印 B70-80 打印 C60-70 打印 D60 以下 打印 E,17,3.2.2 switch语句,多分支选择语句 switch语句的一般形式如下:switch(表达式)case 常量表达式1:语句序列1;break;case 常量表达式2:语句序列2;break;case 常量表达式n:语句序列n;break;default:语句序列n+1;break;,18,说明,Switch在入口时判断表达式与哪个常量表达式匹配。若表达式的值与某个case后面的常量相等,则执行与该case后面相应的语句;若与所有列出的常量都不相等,则执行defa
9、ult后面的语句。case后只能是常量表达式,不能是变量表达式,其值只能是整型、字符型、枚举型,不能是其他类型。每个常量表达式的值都不相同。break;语句用于执行完一个分支后跳出此switch语句,19,举例:输出五分制对应的百分制范围。switch(grade)case A:case a:cout“85100”;case b:case B:cout“7084”;case c:case C:cout“6069”;case d:case D:cout“60”;default:cout“error”;,若grede=A,输出结果是什么?,break;break;break;break;,20,例
10、:已知整型量a,b(b0),设x为实型量,计算分段函数:,y,a+bx(0.5x1.5)a-bx(1.5x2.5)a*bx(2.5x3.5)a/bx(3.5x4.5),1.用if语句 if(0.5=x,2.用switch语句 switch(int)(x+0.5)case 1:y=a+b*x;break;case 2:y=a-b*x;break;case 3:y=a*b*x;break;case 4:y=a/(b*x);break;default:coutx error.n;,21,计算器程序。用户输入运算数和四则运算符,输出计算结果。#includevoid main()float a,b;c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 第三
链接地址:https://www.desk33.com/p-259529.html