C程序的流程控制.doc
- 文档编号:230151
- 上传时间:2022-10-07
- 格式:DOC
- 页数:20
- 大小:145.50KB
C程序的流程控制.doc
《C程序的流程控制.doc》由会员分享,可在线阅读,更多相关《C程序的流程控制.doc(20页珍藏版)》请在冰豆网上搜索。
第三章C++程序的流程控制
3.1流程控制与程序结构
在程序的所有流程控制方式中,有三种最基本的程序结构:
顺序结构
顺序结构是通过安排语句的排列顺序来决定程序流程的程序结构。
条件分支结构
条件分支结构是由特定的条件决定执行哪个语句的程序结构。
循环结构
循环结构是由特定的条件决定某个语句重复执行次数的程序结构。
3种程序结构的共同特点是只有一个入口和出口。
3.2条件分支结构
if语句
if(条件)语句1else语句2 //如果条件成立就执行语句1,否则就执行语句2
if(条件)语句1 //如果条件成立就执行语句1,否则什么也不做
注意语句的格式,基本语句以;结束,复合语句以}结束
if语句的嵌套
当if语句中的语句1或语句2本身也是if语句时,构成了嵌套的if语句。
来看下面的例子:
if(n>0)
if(a>b)z=a;
elsez=b;
表达的是 还是
if(n>0){ if(n>0){
if(a>b)z=a; if(a>b)z=a;
elsez=b; }
} elsez=b;
答案是前者。
注意:
else总是离它最近的一个if配对,如果你想表达的是后者,必须要用{}。
例3.1:
输入2个数,找出其中最大一个并显示出来。
#include
voidmain()
{
inti,j;
cout<<"请输入2个整数:
";
cin>>i>>j;
cout<<"2个数中最大的是:
";
if(i>=j)
cout<
else
cout< } 注意: 在编程中多使用cout输出提示性的文字,否则上来就用cin接收键盘输入,用户将不知所措。 例3.2: 输入3个数,找出其中最大一个并显示出来。 #include voidmain() { inti,j,k; cout<<"请输入3个整数: "; cin>>i>>j>>k; cout<<"3个数中最大的是: "; if(i>=j){ if(i>=k) cout< else cout< } else{ if(j>=k) cout< else cout< } } 本例的思想是将“从3个数中找出最大者”的问题转化成两个“从2个数中找出最大者”的问题。 例3.3: 输入3个数,找出其中最大一个并显示出来。 (例3.2的另解) #include voidmain() { inti,j,k; cout<<"请输入3个整数: "; cin>>i>>j>>k; cout<<"3个数中最大的是: "; if(i if(i cout< } 本例的思想是: 假设第一个变量i中的数为最大,分别用i和j、k比较,只要遇到比i大的数就存到i中,否则什么也不做,这样保证i中始终存放的是当前比较到的最大者。 这一思想很重要,请注意学习。 例3.4: 输入3个数,然后按从大到小的顺序把它们显示出来。 #include voidmain() { inti,j,k,p; cout<<"请输入3个整数: "; cin>>i>>j>>k; if(i if(i if(j cout<<"3个数从大到小排列: "; cout< } 本例的思想: 用i、j、k从大到小存放三个数,其中涉及到交换两个变量的值问题。 若要交换两个变量x、y的值,不能只做简单的对换: x=y;y=x;,这样将导致xy中都存放着原来y中的值。 假设x=2,y=3,下面作简单的对换,以实现x=3,y=2 x=y;//现在x=3 y=x;//现在y=3,最终x=3y=3 正确的做法是使用一个中间变量p p=x;//现在p=2 x=y;//现在x=3 y=p;//现在y=2,最终x=3,y=2 思考: 不借助中间变量交换xy两个变量的值,应执行哪3个赋值语句? 例3.5: 输入工资薪金所得,计算应纳个人所得税并显示计算结果。 假定工资薪金所得扣除1000元后剩余部分为应纳税所得额,税率如下: 级数 全月应纳税所得额 税率(%) 1 不超过500元的部分 5 2 超过500元至2000元的部分 10 3 超过200元至5000元的部分 15 4 超过5000元至20000元的部分 20 5 超过20000元至40000元的部分 25 6 超过40000元至60000元的部分 30 7 超过60000元至80000元的部分 35 8 超过80000元至100000元的部分 40 9 超过100000元的部分 45 分析: 假设某人的工资是6830元,扣除1000元后应纳税额为5830,这5830元被分为4级分别计税: 级数 本级应纳税所得额 税率(%) 本级应纳税额 尚未计税的应纳税额 4 超过5000元部分: 5830-5000=830 20 166 5000 3 超过2000元部分: 5000-2000=3000 15 450 2000 2 超过500元部分: 2000-500=1500 10 150 500 1 不超过500元的部分: 500 5 25 0 合计: 5830 791 #include voidmain() { doubleincome,tax=0.0; cout<<"请输入全月工资薪金所得: "; cin>>income; income-=1000; if(income>100000.0) { tax+=(income-100000.0)*0.45; income=100000.0; } if(income>80000.0) { tax+=(income-80000.0)*0.40; income=80000.0; } if(income>60000.0) { tax+=(income-60000.0)*0.35; income=60000.0; } if(income>40000.0) { tax+=(income-40000.0)*0.30; income=40000.0; } if(income>20000.0) { tax+=(income-20000.0)*0.25; income=20000.0; } if(income>5000.0) { tax+=(income-5000.0)*0.20; income=5000.0; } if(income>2000.0) { tax+=(income-2000.0)*0.15; income=2000.0; } if(income>500.0) { tax+=(income-500.0)*0.10; income=500.0; } if(income>0.0) tax+=income*0.05; cout<<"应纳个人所得税: "< cout< cin.get(); cin.get(); } if多分支结构 if(条件1) 语句1 else if(条件2) 语句2 else if(条件3) 语句3 ... else if(条件n) 语句n else 语句n+1 这是通过规范化的if嵌套所构成的条件分支结构,在这种结构中if语句嵌套在else之后。 但通常我们采用下面更简洁的格式: if(条件1)语句1 elseif(条件2)语句2 elseif(条件3)语句3 … elseif(条件n)语句n else语句n+1 这种结构的工作原理: 先检测条件1,若满足就执行语句1;否则检测条件2,若满足就执行语句2;否则检测条件3,若满足就执行语句3 ...若所有条件都不满足则执行语句n+1,若没有else语句n+1就什么也不做。 注意: 这里的n个条件是互斥的,即只要满足其中一个条件则其他条件肯定不满足,也就是说多分支结构中的n+1个语句只有一个能被执行。 例3.6: 输入一个0-100分范围内的一个成绩,显示相应的等级: 90-100 优 80--89 良 70--79 中 60--69 及格 60分以下 不及格 #include voidmain() { floatscore; cout<<"请输入成绩: "; cin>>score; if(score<0||score>100) cout<<"输入错误! 成绩必须在0-100分之! "< elseif(score<60)cout<<"不及格"< elseif(score<70)cout<<"及格"< elseif(score<80)cout<<"中"< elseif(score<90)cout<<"良"< elsecout<<"优"< } switch语句和switch多分支结构 switch语句的格式: switch(整型表达式){ case整型常量表达式1: 语句序列1 case整型常量表达式2: 语句序列2 ... case整型常量表达式k: 语句序列k default: 语句序列k+1 } switch语句通过判断整型表达式的值来确定程序的去向。 若整型表达式的值与整型常量表达式1的值相同,则依次执行语句序列1开始的各个语句序列,即语句序列1,语句序列2...语句序列k+1;若整型表达式的值与整型常量表达式2的值相同,则依次执行语句序列2开始的各个语句序列,即语句序列2,语句序列3...语句序列k+1;如果整型表达式的值不等于任何列出的整型常量表达式的值,则执行从default后的语句序列k+1;如果没有default则什么也不做;在依次执行各个语句序列的过程中,若遇见break语句,则立即跳出switch分支结构。 若每个语句序列的最后一个语句都是break,则这样的switch多分支结构可以用等效的if多分支结构替代。 例3.7: 输入一个表示
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序 流程 控制