您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 股票报告 > C++大学教程(从零开始)2-程序控制结构
第2章程序控制结构2.1选择控制2.2循环控制2.3判断表达式的使用2.4转向语句小结语句是程序的基本语法成分。程序设计语言的语句按功能可以分成三类:声明语句指示编译器分配内存,或者提供程序连接信息操作语句描述对数据的处理控制语句用于控制程序的执行流程。所有程序都只能包含三种控制结构:顺序结构、选择结构和循环结构第2章程序控制结构对给定的条件进行判断,并根据判断的结果选择不同的操作2.1选择控制条件运算表达式根据判断条件,决定表达式的值不改变程序语句执行流程比较条件运算1.if语句的形式和执行流程if(表达式)语句;2.1.1if语句语句形式(1)执行流程false(0)true(非0)表达式语句2.1.1if语句false(0)true(非0)表达式语句1.if语句的形式和执行流程if(表达式)语句;2.1.1if语句语句形式(1)执行流程表达式语句true(非0)2.1.1if语句false(0)true(非0)表达式语句1.if语句的形式和执行流程if(表达式)语句;2.1.1if语句语句形式(1)执行流程表达式false(0)2.1.1if语句2.1.1if语句35abmax例::max=a;if(ba)max=b;coutmax=maxendl;:2.1.1if语句2.1.1if语句35abmax3例::max=a;if(ba)max=b;coutmax=maxendl;:2.1.1if语句2.1.1if语句35abmax3例::max=a;if(ba)max=b;coutmax=maxendl;:2.1.1if语句2.1.1if语句35abmax3例::max=a;if(ba)max=b;coutmax=maxendl;:2.1.1if语句2.1.1if语句35abmax5例::max=a;if(ba)max=b;coutmax=maxendl;:2.1.1if语句2.1.1if语句35abmax5max=5输出例::max=a;if(ba)max=b;coutmax=maxendl;:2.1.1if语句2.1.1if语句73abmax例::max=a;if(ba)max=b;coutmax=maxendl;:2.1.1if语句2.1.1if语句73abmax7例::max=a;if(ba)max=b;coutmax=maxendl;:2.1.1if语句2.1.1if语句73abmax7例::max=a;if(ba)max=b;coutmax=maxendl;:2.1.1if语句2.1.1if语句73abmax7max=7输出例::max=a;if(ba)max=b;coutmax=maxendl;:2.1.1if语句2.1.1if语句1.if语句的形式和执行流程语句形式(2)if(表达式)语句1;else语句2;执行流程false(0)true(非0)表达式语句1语句22.1.1if语句2.1.1if语句1.if语句的形式和执行流程语句形式(2)if(表达式)语句1;else语句2;执行流程false(0)true(非0)表达式语句1语句2true(非0)表达式语句12.1.1if语句2.1.1if语句1.if语句的形式和执行流程语句形式(2)if(表达式)语句1;else语句2;执行流程false(0)true(非0)表达式语句1语句2false(0)表达式语句22.1.1if语句2.1.1if语句例::if(ba)max=b;elsemax=a;coutmax=maxendl;:35abmax2.1.1if语句2.1.1if语句35abmax例::if(ba)max=b;elsemax=a;coutmax=maxendl;:2.1.1if语句2.1.1if语句例::if(ba)max=b;elsemax=a;coutmax=maxendl;:35abmax52.1.1if语句2.1.1if语句例::if(ba)max=b;elsemax=a;coutmax=maxendl;:35abmax5max=5输出2.1.1if语句2.1.1if语句例::if(ba)max=b;elsemax=a;coutmax=maxendl;:73abmax2.1.1if语句2.1.1if语句例::if(ba)max=b;elsemax=a;coutmax=maxendl;:73abmax72.1.1if语句2.1.1if语句例::if(ba)max=b;elsemax=a;coutmax=maxendl;:73abmax7max=7输出2.1.1if语句2.1.1if语句2.if语句的嵌套if语句中的执行语句如果又是另一个if语句,称为嵌套if语句if与else的配对关系:C++规定,else总是与它接近的if配对使用复合语句,可以改变条件语句的执行流程2.1.1if语句2.1.1if语句例2-1编写程序计算货物运费。设货物运费每吨单价p(元)与运输距离s(公里)之间有如下关系:400204003005.22300200252001005.2710030sssssp=输入要托运的货物重量为w吨,托运距离s公里,计算总运费t:t=p*w*s2.1.1if语句2.1.1if语句控制流图truefalsetruetruetruefalsefalsefalseS100?S200?S300?S400?P=30P=20P=22.5P=25P=27.5t=p*w*s2.1.1if语句2.1.1if语句truefalsetruetruetruefalsefalsefalseS100?S200?S300?S400?P=30P=20P=22.5P=25P=27.5t=p*w*s//例2-1计算货物运费#includeiostream.h#includeiomanip.hvoidmain(){doublet,p,w,s;coutPleaseinputweight(ton):;cinw;coutPleaseinputdistsnce(kilometre):;cins;if(s100)p=30;elseif(s200)p=27.5;elseif(s300)p=25;elseif(s400)p=22.5;elsep=20;t=p*w*s;coutThecostis:setprecision(2)t'$'endl;}想一想:几个else分支语句的次序可以改变吗?2.1.1if语句2.1.1if语句if(E1)if(E2)S1elseS2if(E1){if(E2)S1}elseS2分析S1和S2的执行条件:E1&&E2执行S1E1&&!E2执行S2E1&&E2执行S1!E1执行S2注意括号的作用2.if语句的嵌套2.1.1if语句3.应用举例(1)把输入字符转换为小写字母。对输入字符进行判断,如果是大写字母,则转换为小写字母;否则,不转换。//例2-3#includeiostream.hvoidmain(){charch;coutch=;cinch;if(ch='A'&&ch='Z')ch+=32;coutchendl;}2.1.1if语句3.应用举例//例2-3#includeiostream.hvoidmain(){charch;coutch=;cinch;if(ch='A'&&ch='Z')ch+=32;coutchendl;}输入大写字母(1)把输入字符转换为小写字母。对输入字符进行判断,如果是大写字母,则转换为小写字母;否则,不转换。2.1.1if语句3.应用举例//例2-3#includeiostream.hvoidmain(){charch;coutch=;cinch;if(ch='A'&&ch='Z')ch+=32;coutchendl;}计算ASCII码偏移值(1)把输入字符转换为小写字母。对输入字符进行判断,如果是大写字母,则转换为小写字母;否则,不转换。2.1.1if语句3.应用举例//例2-3#includeiostream.hvoidmain(){charch;coutch=;cinch;if(ch='A'&&ch='Z')ch+=32;coutchendl;}(1)把输入字符转换为小写字母。对输入字符进行判断,如果是大写字母,则转换为小写字母;否则,不转换。2.1.1if语句3.应用举例//例2-3#includeiostream.hvoidmain(){charch;coutch=;cinch;if(ch='A'&&ch='Z')ch+=32;coutchendl;}改写为条件表达式ch=(ch='A'&&ch='Z')?ch+32:ch;(1)把输入字符转换为小写字母。对输入字符进行判断,如果是大写字母,则转换为小写字母;否则,不转换。2.1.1if语句3.应用举例(2)求一元二次方程ax2+bx+c=0的根。求根公式:aacbbx2422,1①当a=0时,方程不是二次方程abx22,1②当b2-4ac=0时,有两个相同的实根:aacbbx2422,1③当b2-4ac0时,有两个不同的实根:iabacabx24222,1④当b2-4ac0时,有两个共轭复根:2.1.1if语句#includeiostream.h//例2-4#includemath.hvoidmain(){doublea,b,c,d,x1,x2,rp,ip;couta,b,c=;cinabc;if(fabs(a)=1e-8)coutItisnotquadratic.endl;else{d=b*b-4*a*c;if(fabs(d)=1e-8)coutIthastwoequalrealroots:-b/(2*a)endl;elseif(d1e-8){x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);coutIthastwodistinctrealroots:x1andx2endl;}else{rp=-b/(2*a);ip=sqrt(-d)/(2*a);coutIthastwocomplexroots:endl;coutrp+ipiendl;coutrp-ipiendl;}}}2.1.1if语句#includeiostream.h//例2-4#includemath.hvoidmain(){doublea,b,c,d,x1,x2,rp,ip;couta,b,c=;cinabc;if(fabs(a)=1e-8)coutItisnotquadratic.endl;else{d=b*b-4*a*c;if(fabs(d)=1e-8)coutIthastwoequalrealroots:-b/(2*a)endl;elseif(d1e-8){x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);coutIthastwodistinctrealroots:x1andx2endl;}else{rp=-b/(2*a);ip=sqrt(-d)/(2*a);coutIthastwocomplexroots:endl;coutrp+ipiendl;coutrp-ipiendl
本文标题:C++大学教程(从零开始)2-程序控制结构
链接地址:https://www.777doc.com/doc-3357973 .html