《流程控制语句.ppt》由会员分享,可在线阅读,更多相关《流程控制语句.ppt(116页珍藏版)》请在三一办公上搜索。
1、第四章 流程控制语句,4.2 if 语句双分支语句,4.3 switch 语句多分支语句),4.4 for语句(当型循环),4.5 while 语句(条件循环),4.6 do-while语句(直到型循环),4.7 跳转语句,本章主要内容:,4.1 概述,流程控制语句用来控制程序的执行过程,它包括以下三种语句:,选择:用来解决实际应用中按不同情况进行不同处理的问题.包括:if语句 和 switch语句,循环:用来解决实际应用中需要重复处理的问题.包括:for语句、while语句 和 do语句,跳转:用来改变顺序向下执行的正常顺序.包括:goto、continue、break 和 return语句
2、,4.1 概述,4.2 if 语句条件语句,一、if语句的简单格式,三、if语句的嵌套,二、if语句的双分支格式,表达式,语句,真,假,一、if语句的简单分支,语句:if(表达式)语句,表达式为任意表达式,若有多条语句,则要构成复合语句,执行:计算 表达式的值,若为真(不为0)则执行语句;否则不执行语句,例4.2.1:求x的绝对值,#includevoid main()int x,absx;coutx;absx=x;if(x0)absx=-x;coutx=xendl;cout|x|=absxendl;,例4.2.2:C若为大写字母,则把它变为小写字母,否则为c本身。,#includevoid
3、main()char ch;cinch;if(ch=A,二、if语句的双分支,if(表达式)语句1else 语句2,表达式,语句1,语句2,真,假,入口,出口,执行:,若表达式的值不为0,执行语句1,否则执行语句2,语句:,#includevoid main()int a,b,x;cinab;if(ab)x=a;x*=x;else x=b;coutxendl;,例4.2.3:输入两个数a,b,若a 大,则输出a的平方,若b大,输出b。,复合语句一定要加大括号,嵌套的两种形式:(1)嵌套 ifelse(2)嵌套 else if,三、if 语句的嵌套(处理多分支问题),(1)嵌套 ifelse,i
4、f(表达式1),if(表达式3)语句1;,if(表达式2),else 语句2;,else 语句3;,else 语句4;,外层,内层,中层,若表达式1的值为非0,即真,则执行中层ifelse结构;否则,执行语句4。执行中层时,若表达式2的值为非0,即真,则执行内层ifelse结构;否则,执行语句3。执行内层时,若表达式3的值为非0,即真,则执行语句1;否则,执行语句2。,if_else 嵌套流程图,if(表达式1)语句1;else if(表达式2)语句2;else if(表达式3)语句3;.else if(表达式n)语句n;else 语句n+1;/*前面n个条件均 不成立,执行语句n+1*/,(
5、2)嵌套 else if,else_if 嵌套流程图,例4.2.4:编写程序计算函数,解:根据题目的三个区间,两个判断点,形成三分支,可采用三种选择结构设计。方法1:else_if 嵌套结构设计 方法2:if_else嵌套结构设计 方法3:三个并列的if结构设计,方法1:else_if 嵌套结构-源程序:,注:这种方法是判判断点法 各条件互相关联形成区间 要考虑条件成立与不成立,/X3,/0X=3,/X=0,#includevoid main()int x,y;coutx;if(x3)y=x*x+4;else if(x0)y=x;else y=x*x-4;couty=yendl;,方法2:if
6、_else嵌套结构设计,#includevoid main()int x,y;coutx;if(x0)if(x=3)y=x;else y=x*x+4;elsey=x*x-4;couty=yendl;,注:这种方法也是判判断点法 各条件互相关联形成区间 要考虑条件成立与不成立,方法3 三个并列的if 结构-源程序,#includevoid main()int x,y;coutx;if(x3)y=x*x+4;if(x0,注:这种方法是判区间法。,若改为”03时,运行程序,看结果如何?,例4.2.5:输入年份,判断是否为闰年,若是,回答“Yes”,否则回答“No”。,什么样的年份是闰年?,能被4整除
7、,不能被100整除,是闰年,能被4整除,也能被100整除:不是闰年,能被4整除,也能被100整除,还能被400整除:是闰年,真,假,No,假,Yes,真,假,No,真,Yes,#includevoid main()int year;coutyear;if(year%4=0)if(year%100=0)if(year%400=0)coutYesendl;else coutNoendl;/不能被400整除/else coutYesendl;/不能被100整除/else coutNoendl;/不能被4整除/,或:if(year%4)/*不能被4整除*/coutNoendl;else if(year
8、%100)/*不能被100整除*/coutYesendl;else if(year%400)/*不能被400整除*/coutNoendl;else coutYesendl;,返回,也用一个逻辑表达式包含所有条件:,#includevoid main()int year;coutyear;if(year%4=0,形式:,switch(表达式)case 常量表达式1:语句序列1;case 常量表达式2:语句序列2;.case 常量表达式n:语句序列n;default:语句序列n+1;,switch 语句是多分支选择语句,4.3 switch 语句(开关语句),先计算switch中表达式的值M,若不
9、是整数,只取整数部分;依次计算每个常量表达式的值M1,M2,若不是整型,自动转为整型,起标号的作用。M与 M1,M2比较,若找到一个匹配的值就从该语句开始,依次向下执行.否则,执行default后面的语句组。,执行:,注意:,语句序列中可以有若干条语句,不用复合语句序列;,多个case标号可以共用一条语句;,大括号,可以配合break语句使用;,cin N;,cout x;,cin N;,cout x;,switch 通常与break语句联用:break用于中断或结束语句(只能用在switch语句和循环语句中),例4.3.1:输入成绩,若:90 100:A 70 89:B 60 69:C 60
10、:D,break语句:,#includevoid main()int cj;cincj;switch(cj/10)case 10:case 9:coutnA;case 8:case 7:coutnB;case 6:coutnC;default:coutnDn;,break;,break;,运行:不加”break”和加”break”的区别!,break;,98ABCD,不加break,98A,加break,#include#includevoid main()float score;coutscore;if(score100)cout输入数据有误!endl;exit(1);,程序举例(P85例4
11、-3-2),switch(int(score)/10)case 9:case 10:coutscore:优endl;break;case 8:case 7:coutscore:良endl;break;case 6:coutscore:及格endl;break;default:coutscore:不及格endl;break;,程序举例(P85例4-3-2),程序举例(p85例4-3-1),#includevoid main()int weekday;coutweekday;switch(weekday)case 0:coutSundayendl;break;case 1:coutMondayen
12、dl;break;case 2:coutTuesdayendl;break;case 3:coutWednesdayendl;break;,程序举例(p85例4-3-1),case 4:coutThursdayendl;break;case 5:coutFridayendl;break;case 6:coutSaturdayendl;break;default:coutInput error!endl;break;,程序举例(P86 程序4-3-3),#include#include#includevoid main()char mark;int x,y,z;bool b=false;sran
13、d(time(0);/srand(time(0);/初始化系统中的随机数序列 x=rand()%50+1;,程序举例P86 程序4-3-3,y=rand()%10+1;coutmark;coutz;switch(mark)case+:if(z=x+y)b=true;break;case-:if(z=x-y)b=true;break;case*:if(z=x*y)b=true;break;,程序举例P86 程序4-3-3,case/:if(z=x/y)b=true;break;case%:if(z=x%y)b=true;break;default:cout运算符输入错!endl;exit(1);
14、if(b)coutright!endl;else couterror!endl;,程序补充知识,srand(time(0)和rand()它们分别怎样用,又怎么区别srand(time(0);/先设置种子rand();/然后产生随机数srand是种下随机种子数,你每回种下的种子不一样,用rand得到的随机数就不一样。为了每回种下一个不一样的种子,所以就选用time(0),time(0)是得到当前时间值(因为每时每刻时间是不一样的了)。,注:time函数原型包含在系统头文件time.h或ctime中,它返回从1970年1月1日零时算起至当前时间为止的总秒数。,应用举例p87例4-3-1,例4-3-
15、1 编写一个程序,要求把从键盘上输入的一个015的整数转换为一位十六进制数输出。#include#includevoid main()int x;coutx;if(x15)cout输入数据不正确!n;exit(1);,应用举例p87例4-3-1,switch(x)case 10:coutA;break;case 11:coutB;break;case 12:coutC;break;case 13:coutD;break;case 14:coutE;break;case 15:coutF;break;default:coutchar(x+48);break;/48为数字0的/ASCII码cout
16、endl;,分支(选择)结构小结,1、if语句的简单分支,2、if语句的双分支:if-else3、if的嵌套4、switch 语句的使用,返回,4.4 4.6 循环结构,一、for 语句*,二、while语句*,三、do-while 语句*,主要学习语句的执行过程、使用方法,循环:重复执行一段语句,格式,for(表达式1;表达式2;表达式3)语句,表达式2,语句,表达式1,表达式3,表达式1:作为初始化,先执行表达式1的值;再执行表达式2,如果值为真,执行语句,再执行表达式3,重复;如果表达式2的值为假,退出循环,继续执行下面的语句。,执行情况,真,假,表达式2:作为循环控制,是循环条件,表达
17、式3:每次都要做,改变循环变量,4.4 for语句(计数式型循环),for(循环变量赋初值;循环条件;循环变量增值)语句,for(s=0,i=1;i=100;i+)s+=i;,注意:,这三个表达式都可以忽略,但分号 不能省 for(;),不能构成死循环,死循环可用ctrl+c强行中止。,for循环最常见格式:,死循环举例,#include#includevoid main()int n,i;cinn;for(i=2;itemp)coutnYesn;else coutnNon;,例4.4.1:求n!(n的值由键盘输入),#includevoid main()int n;double s=1.0;
18、coutn;for(int i=1;i=n;i+)s*=i;coutn!=sendl;,例4.4.2:输入一个数,判断是否为素数,#includevoid main()int n,i;cinn;for(i=2;in;i+)if(n%i=0)break;if(i=n)coutnYesn;else coutnNon;,#include#includevoid main()int n,i;cinn;int temp=int(sqrt(n)+1e-5);for(i=2;itemp)coutnYesn;else coutnNon;,例4.4.2程序优化:循环次数可以减少,详见p94(例4-4-4),例4
19、-4-4,循环嵌套,内循环外循环,嵌套不能有交叉,在循环嵌套中,break语句只能退出一层循环。,例4.4.3 打印出100到200之间的素数,#includevoid main()int i,j;for(i=100;i=i)coutt i;,程序优化:循环次数可以减少,详见94(例4-4-4),例4-4-4,例4.4.4 打印乘法表。,1*1=12*1=2 2*2=43*1=3 3*2=6 3*3=94*1=4 4*2=8 4*3=12 4*4=165*1=5 5*2=10 5*3=15 5*4=20 5*5=256*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=3
20、67*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=498*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=649*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81,#includevoid main()int i,j;for(i=1;i=9;i+)coutn;for(j=1;j=i;j+)/*循环嵌套*/couti*j=i*jt;,例4.4.4 打印乘法表。,双重for循环的执行过程:例4.4.5 求1!+2!+3!+5!,#inc
21、ludevoid main()int i,j;long int s=0,m;for(i=1;i=5;i+)m=1;for(j=1;j=i;j+)m*=j;s+=m;coutsendl;,#include 10 s=0;void main()20 for(i=1;i=3;i+)int i,j;30 m=1;long int m,s;40 for(j=1;j=i;j+)50 m*=j;60 s+=m;70 coutsendl;,10,20,30,40,50,60,m=1,s=0,i=1,j=1,m=1*1,s=0+1,i=2,j=1,m=1,m=1*1,j=2,m=1*2,s=1+2,i=3,j=
22、1,j=2,j=4,m=1,m=1*1,m=1*2,m=2*3,s=3+6,70,s=9,i=4,外走一内走遍,j=2,j=3,j=3,#includevoid main()int i,j,n,m;long s=0,t;cinnm;for(i=1;i=n;i+)t=1;for(j=1;j=m;j+)t*=i*2-1;/t*=(i*2-1);s+=t;coutsn;,例4.4.6 1m+3 m+5 m+7 m+.,返回,程序举例(p90程序4-4-1),#includevoid main()int i,n;double p=1;coutn;for(i=1;i=n;i+)p*=i;coutn!=p
23、endl;,程序举例(p90程序4-4-2),#include#includevoid main()int n,x,max,min;coutn;for(;nn;cout从键盘上输入n个待处理的数据:;,程序举例(p90程序4-4-2),cinx;max=min=x;for(;-n;)cinx;if(xmax)max=x;if(xmin)min=x;coutmax:maxendl;coutmin:minendl;,程序举例(p90程序4-4-3),#includevoid main()for(int a=0,b=1;b100;)couta b;a=a+b;b=a+b;coutendl;couta
24、 b endl;,程序举例(p91程序4-4-4),#includeconst int M=4,N=5;void main()int i,j,s=0;for(i=1;i=M;i+)for(j=1;j=N;j+)s+=i*j;coutsendl;,应用举例(p92例4-4-1),例4-4-1 编一程序计算1+22+42+62+502的值。#includevoid main()int i,s=1;for(i=2;i=50;i+=2)s+=i*i;couts=sendl;,应用举例(p93例4-4-2),例4-4-2 已知一组实验数据为3.62、2.93、3.16、3.73、2.86、3.40、2.
25、86、3.07、3.29、3.24,编一程序分别求出它们的平均值、方差和均方差,要求每一结果只保留两位小数。,应用举例(p93例4-4-2),#include#includeconst int N=10;/N等于待处理数据的个数void main()double x,s1,s2;s1=s2=0;cout从键盘上输入N个实验数据:n;for(int i=1;i=N;i+),应用举例(p93例4-4-2),cinx;s1+=x;s2+=x*x;double v,f,t;v=s1/N;f=s2/N-v*v;t=sqrt(f);v=floor(v*100)/100;/使结果保留两位小数f=floor(
26、f*100)/100;/使结果保留两位小数t=floor(t*100)/100;/使结果保留两位小数cout平均值:vendl;cout方 差:fendl;cout均方差:tendl;,应用举例(p94例4-4-3),例4-4-3 由勾股定理可知,在一个直角三角形中,两条直角边a和b与斜边c的关系为a2+b2=c2,编一程序求出每条直角边均不大于30的所有整数组解。#include#includeconst int N=30;void main()int a,b;double c;,应用举例(p94例4-4-3),for(a=1;a=N;a+)for(b=a+1;b=N;b+)c=sqrt(a
27、*a+b*b);/求出斜边的长度if(fabs(c-int(c)1e-5)/若斜边同为整数/则输出 cout(a,b,c),;coutendl;,应用举例(p94例4-4-4),例4-4-4 编一程序打印出299的所有素数。#include#includevoid main()int i,n;cout299之间的所有素数:2;,应用举例(p94例4-4-4),for(n=3;ntemp)coutn;coutn;,例4.4.2,格式:while(表达式)语句,执行过程:先求表达式的值,判断为真为假,若为真,则执行语句;否则退出循环。,注意:,语句:一个语句,复合语句,空语句表达式后面不能有分号,
28、4.5 while 语句(条件循环),例4.5.1:求1+2+3+100的和,#includevoid main()int s,i;s=0;/s为累加和 i=1;/i为循环控制变量 while(i=100)/循环条件 s+=i;i+;coutsendl;,#include void main()int s,i;10:s=0;20:i=1;30:while(i=4)40:s+=i;50:i+;60:coutsendl;,s=0,循环过程如下:,10,20,40,30,50,60,i=1,s=0+1,i=2,1,s=1+2,i=3,1,1,i=4,s=3+3,0,s=6+4,i=5,s=10,1,
29、例4.5.2:编程求 的近似值,公式/4 1-1/3+1/5-1/7+1/9-,#include#include void main()int s;float n,t,pi;s=1;n=1;t=1;pi=0;while(fabs(t)1e-6)pi=pi+t;n=n+2;s=-s;t=s/n;pi=4*pi;coutpi=pin;,分析:题目仍可以看成是累加求和不同的是,相加的每一项正负相间,公式是无穷的,所以我们规定当相加项的绝对值小于等于0.000001(即106)时停止计算,1,1,-1,3,-1/3,1,0,1,0.67,1/5,5,1,返回,程序举例(p97例4-5-1),分别统计出
30、从键盘上输入的所有正整数中小于60和大于等于60的数据个数,然后显示出来。#includevoid main()int x,c1=0,c2=0;cinx;while(x=0)/当输入一个负数时结束循环 if(xx;coutc1 c2endl;,程序举例(p97例4-5-2),采用辗转相除法求出两个正整数的最大公约数。#includevoid main()int a,b;coutab;while(aab;while(b)int r=a%b;a=b;b=r;coutaendl;,程序举例(p98例4-5-3),随机产生出10个10199之间的素数并显示出来。#include#include#inc
31、ludevoid main()int i=10,a;while(i0)a=rand()%190+10;int j,k=int(sqrt(a)+1e-5);for(j=2;jk)couta;i-;coutendl;,应用举例(p99例4-5-1),例4-5-1 编一程序求出满足不等式,的最小n值。,用while循环编写的程序如下:#includevoid main()int i=0;double s=0;while(s5)s+=double(1)/+i;coutn=iendl;,应用举例(p99例4-5-1),用for循环编写的程序如下:#includevoid main()int i;doub
32、le s=0;for(i=1;s5;i+)s+=1.0/i;coutn=i-1endl;/此i-1的值为所求的n值,应用举例(p99例4-5-2),例4-5-2 有一家企业,若年产值平均增长率分别按2%、4%、6%、20%计算,问分别需要经过多少年能够使年产值翻一番。分析:假定把当年的年产值定为1个单位,则翻一番后就应变为2。设年产值平均增长率为x,经过的年数为n,n年后的产值为y,则求y的计算公式为:,应用举例(p99例4-5-2),#includevoid main()double x,y;int n;for(x=0.02;x0.21;x+=0.02)/*终值为0.20,考虑到数据运算精度
33、,使用时做好增加半个步长值*/,应用举例(p99例4-5-2),n=0;y=1;while(y2)n+;y*=1+x;coutx*100%n yendl;,应用举例(p100例4-5-3),例4-5-3 一家商场采用打折促销活动,具体做法是:购物满100元送30元购物券,用购物券购物同用人民币购物一样遵循上述原则。若一个顾客一次购物花销x元,则最终能够得到几折优惠。分析:花销x元得到的购物券为(int(x)/100)*30,假定这个值仍以x保存,则再购价值为x的物品后,同样又可以得到由上述公式计算出来的购物券,直到x为0时止。,应用举例(p100例4-5-3),#include#include
34、/此行可以省略#includevoid main()double x,a,s;coutx;,应用举例(p100例4-5-3),while(x0):;cinx;a=x;s=0;while(x)s+=x;x=int(x)/100*30;couta s floor(a/s*100+0.5)/100endl;,注:x=int(x)/100*30;/这里计算的是x,不是s,格式,do 语句while(表达式),执行情况:,先执行语句,再计算表达式的值,若非0,再执行语句;否则退出循环,执行下面的语句,do后若有多条语句,需使用复合语句,语句至少被执行一次,不同于while语句,注意,4.6 do-whi
35、le语句(直到型循环),;,while 语句与do-while语句(求1到100的累加和),#includevoid main()int s,i;s=0;cini;while(i=100)s+=i;i+;couts;,#includevoid main()int s,i;s=0;cini;do s+=i;i+;while(i=100);couts;,输入:101,输出:0,输出:101,输入:101,例4.6.1 把从键盘上输入的一个正整数按数字位的相反次序输出。,#includevoid main()int num,rem;coutnum;do rem=num%10;num/=10;cout
36、0);coutendl;,程序举例(p102 程序4-6-1),程序4-6-1 根据从键盘上输入的NM个整数,统计出3060范围内的整数个数,最后输出统计结果。,程序举例(p102 程序4-6-1),#includeconst int NM=10;void main()int x,n=1,c=0;do cinx;if(x=30,程序举例(p103 程序4-6-2),程序4-6-2 把从键盘上输入的一个大于等于3的整数分解为质因子的乘积。#includevoid main()int x;coutx;while(x=2);,程序举例(p103 程序4-6-2),int i=2;do while(x
37、%i=0)couti;x/=i;i+;while(i=x);coutendl;,请输入一个整数,若小于3则重输:62 3,输出结果:,应用举例(p103 例4-6-1),例4-6-1 编一程序把从键盘上输入的一个十进制正整数转换为对应的十六进制数字串输出。#includevoid trans(int x)/此函数得到的十六进制数字串是按照从低位到高位的次序排列的int rem;/用于保存整余数do rem=x%16;x=x/16;if(rem10)coutchar(rem+0);,应用举例(p103 例4-6-1),else switch(rem)case 10:coutA;break;cas
38、e 11:coutB;break;case 12:coutC;break;case 13:coutD;break;case 14:coutE;break;case 15:coutF;break;while(x!=0);coutendl;,应用举例(p103 例4-6-1),void main()int d;coutd;while(d0);trans(d);,应用举例(p103 例4-6-1),#includevoid trans(int x)/此函数得到的十六进制数字串是按照从低位到高位的次序排列的char a10;int i=0,rem;do rem=x%16;x=x/16;if(rem10
39、)ai=48+rem;/0字符的ASCII码为48else ai=55+rem;/A字符的ASCII码为65i+;,应用举例(p103 例4-6-1),while(x!=0);while(i0)coutd;while(d0);trans(d);,应用举例(p105 例4-6-2),例4-6-2 编一程序利用牛顿法求解方程,的根,要求两相邻近似根之,差的绝对值不大于0.001。,附:牛顿迭代法求根:1.计算公式:Xi+1=Xi-f(Xi)/f(Xi)(i=0)2.精度:=|Xi+1-Xi|1.0e-33.所求的根:满足精度的Xn,1.设两个变量来实现xi和 xi+1:例:x1和x2 迭代初值:x
40、=-0.52.设两个变量来实现f(xi)和f(xi):例:y1和 y23.迭代的规律:x=x1 y1=f(x1)y2=f(x1)x2=x1-y1/y2 判断|x2-x1|=10-3?是,x2为所求的根;否则x2 x1,再迭代,直到满足条件。程序见下页。,算法实现:,#include#includedouble Newton(double x)/x可以为任何值double x1,x2,y1,y2;x2=x;/给x2赋初值为xdo x1=x2;y1=exp(x1)+3*x1-2;/y1=f(x1)y2=exp(x1)+3;/y2=f(x1),x2=x1-y1/y2;while(fabs(x2-x1
41、)0.001);return x2;void main()double x;coutx;x=int(Newton(x)*1000)/1000.0;/保留运算结果的3位小数coutroot:xendl;,三种循环语句的比较:,for和 while语句是先判断循环条件再执行循环体,而do循环是先执行循环体,然后再判断,依次反复进行下去,直到循环条件的值为假时止,所以,for和 while的循环体可能一次也不执行;而do语句的循环体至少执行一次。,一般情况下,它们之间可以相互转换,编程时可 以任选使用,通常使用for循环较简单。,在任一种循环的循环体内都可以使用break语 句使之终止循环的执行,使
42、用continue语句结束一次循环体的执行。,循环结构小结,一、for 语句*,二、while语句*,四、循环的嵌套,三、do-while 语句*,返回,用来改变顺序向下执行的正常顺序.包括:goto、break、continue和 return语句,4.7 跳转语句,一、goto 语句格式:goto 语句标号;(注:语句标号后加:号)功能:无条件转向语句。如:goto loop;,程序举例p106,#include#includevoid func(double x)double y;if(x=0,程序举例p106,void main()double x;coutx;func(x);,程序举
43、例p106,函数也可以不使用goto语句。#include#includevoid func(double x)double y;if(x=0,程序举例p106,void main()double x;coutx;func(x);,二、break 语句,只用于switch语句和循环中,用在循环中,用来中止循环,提前跳出循环体,#includevoid main()int i=1,s=0;while(i=2000)break;s+=i;i+;couts=s i=iendl;,例4.7.1:,结果:s=2016 i=64,三、continue 语句,只能用在循环中,continue通常与if语句结
44、合,一同用于循环结构,注意:与break语句的区别,continue:结束本次循环,继续下次循环break:中止循环的进行,1.break语句:中止循环或switch结构2.continue语句:结束本次循环,然后再根据是否满足 条件来决定是否执行下次循环,例4.7.2:把100到200之间的不能被3整除的数输出出来,#includevoid main()int n;for(n=100;n=200;n+)if(n%3=0)continue;coutn=nt;,四、return 语句,格式return;说明:该语句使用在类型为void的函数中,不能带有,其它任何类型的函数中必须带有。若带有,则首
45、先计算它的值,再将此值作为整个函数的值返回到调用该函数的位置;若不带,则不带回任何值,但也返回调用该函数的位置。,四、return 语句,注:当执行到标志一个函数结束的右花括号时,若仍碰不到return语句,则也将自动返回到调用该函数的位置,接着将从这个位置起向下执行。,四、return 语句,#includeint f1(int n)int i,s=0;for(i=1;in;i+=2)s+=i*i;return s*s;void f2(int x)coutxendl;,四、return 语句,void main()int a;a=f1(6);f2(a);f2(f1(8);,累加累乘判素数牛顿迭代法数值分析*,算法小结:,返回,