版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章累加与阶乘
——循环结构能力目标:学会使用for、while和do-while循环语句,理解递归调用方法。学会使用加赋值、乘赋值等复合赋值运算符。能运用循环结构编写计算累加、阶乘以及乘法表等应用程序。5.1任务预览5.2while语句5.3复合赋值运算符5.4for语句5.5递归调用方法5.6do-while语句5.7break和continue语句5.8多重循环5.9本章小结5.10实训5:累加、阶乘与乘法表内容介绍本章实训程序运行结果:5.1任务预览
循环语句有3个:while、for和do-while。while循环语句的语法形式如下:while(条件表达式)
循环体5.2while语句… intsum=0; inti=1;
while(i<=10){
sum=sum+i; System.out.printf("1到%d的累加结果:%d\n",i,sum); i++; } System.out.printf("最后结果:%d",sum);…【例5-1】编程,计算1到10的累加,
即1+2+3+…+10。算法描述:(1)0=>sum(2)1=>i(3)当i≤10时,执行下一步,否则跳转到步骤(8)(4)sum+i=>sum(5)输出中间结果sum(6)i+1=>i(7)转回步骤(3)(8)输出最后结果sum。复合赋值运算符有:
+=-=*=/=%=&=|=^= <<=>>=>>>=如:sum+=i相当于sum=sum+i又如:
Stringstr="We"; str+="are"; str+="students."; System.out.println(str);执行上述语句,将输出:Wearestudents.5.3复合赋值运算符for(变量初始化;条件表达式;循环变量更新)循环体【例5-2】编程,使用for语句计算1到10的累加。publicclassExample2{ publicstaticvoidmain(String[]args){ intsum=0;
for(inti=1;i<=10;i++){ sum+=i;//加赋值运算
System.out.printf("1到%d的累加结果:%d\n",i,sum); } System.out.printf("最后结果:%d",sum); }}5.4for语句publicclassExample3{ publicstaticvoidmain(String[]args){intfactorial=1;
for(inti=1;i<=10;i++){ factorial*=i;//乘赋值运算
System.out.printf("%d的阶乘:%d\n",i,factorial); } System.out.printf("最后结果:%d",factorial); }}【例5-3】阶乘程序1:使用for循环语句计算10的阶乘。publicclassExample4{ staticlongcalcFactorial(intn){//计算n的阶乘方法
longfactorial=1;
for(inti=n;i>=1;i--){ factorial*=i; } returnfactorial; }
publicstaticvoidmain(String[]args){ System.out.printf("最后结果:%d",calcFactorial(10)); //调用阶乘方法
}}【例5-4】阶乘程序2:使用方法调用计算10的阶乘。数学上用n!表示n的阶乘,数学公式如下:
n!=n×(n-1)!(若n>1)
n!=1(若n=1)【例5-5】阶乘程序3:使用递归调用方法计算10的阶乘。
publicclassExample5{ staticlongcalcFactorial(intn){//递归方法
if(n>1){returnn*calcFactorial(n-1);}//递归调用
else{return1;} } publicstaticvoidmain(String[]args){ System.out.printf("最后结果:%d",calcFactorial(10)); }}5.5递归调用方法其中,f(n)=f(n-1)+f(n-2)(若n≥3)f(n)=1(若n<3)publicclassExample6{ staticintf(intn){//递归调用方法
if(n>=3){returnf(n-1)+f(n-2);} else{return1;} } publicstaticvoidmain(String[]args){ System.out.printf("f(%d)=%d\n",6,f(6)); System.out.printf("f(%d)=%d\n",7,f(7)); System.out.printf("f(%d)=%d\n",8,f(8)); }}【例5-6】使用递归调用编写计算f(n)的方法,并调用方法计算f(6)、f(7)、f(8)的值。do
循环体while(条件表达式);【例5-7】编程,使用do循环语句计算1到10的累加。publicclassExample7{ publicstaticvoidmain(String[]args){ intsum=0; inti=1;
do{ sum+=i; System.out.printf("1到%d的累加结果:%d\n",i,sum); i++;
}while(i<=10); System.out.printf("最后结果:%d",sum); }5.6do-while语句break可跳出多分支语句switch和循环语句。continue只能用于循环语句,结束本轮、继续下轮循环。【例5-8】编程,求1到10的累加,要求使用break和continue语句。… intsum=0; inti=1;
while(true){ sum+=i; System.out.printf("1到%d的累加结果:%d\n",i,sum); i++; if(i<=10){continue;} else{break;}
} System.out.printf("最后结果:%d",sum);…5.7break和continue语句publicclassExample9{ publicstaticvoidmain(String[]args){ intsquare;
for(inti=1;i<=20;i+=2){ if(i==5||i==15){continue;} square=i*i; if(square>300){break;} System.out.printf("%d的平方:%d\n",i,square);
} }}【例5-9】编程,计算1到20中除5、15以外的所有奇数的平方,但若平方值超过300,则终止。二重以上的循环就是多重循环。【例5-10】编程,使用二重循环,输出8行4列的表格。publicclassExample10{ publicstaticvoidmain(String[]args){
for(inti=1;i<=8;i++){//i控制行
for(intj=1;j<=4;j++){//j控制列
System.out.printf("%d行%d列",i,j); } System.out.println();//换行
} }}5.8多重循环publicclassExample11{ publicstaticvoidmain(String[]args){
for(inti=1;i<=9;i++){//i控制行
for(intj=1;j<=9;j++){//j控制列
System.out.printf("%d×%d=%2d",j,i,j*i); } System.out.println();//换行
} }}【例5-11】编程,使用二重循环,计算并输出乘法表。编写循环结构主要使用循环语句。Java有3个循环语句:while、for和do-while。其中for语句使用频率最多。一些递归形式的数学函数或公式,除了使用循环语句,也可以运用递归调用方法进行编程。实质上递归调用隐含了循环结构。复合赋值运算符如加赋值、乘赋值等,这些运算符把两种运算合并成一种,显得非常简练。可在循环语句中使用加赋值进行累加运算。使用break语句终止循环语句。要中止本次循环而继续下一轮循环,则使用continue语句。循环语句也可相互嵌套,形成多重循环,如二重循环。5.9本章小结(1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023-2024学年黑龙江省齐齐哈尔市铁锋区高二下学期4月期中物理试题(解析版)
- 2024年江西省南昌市新建区三年级数学第一学期期末监测试题含解析
- 2024年湖南省岳阳平江县公安局招聘20人历年高频500题难、易错点模拟试题附带答案详解
- 2024年江苏省苏州市数学六年级第一学期期末复习检测试题含解析
- 2024年湖南益阳市赫山区事业单位招聘11人历年高频500题难、易错点模拟试题附带答案详解
- 2024年湖南湘西自治州公开招募“三支一扶”高校毕业生高频500题难、易错点模拟试题附带答案详解
- 2024年湖南湘南学院招聘99人历年高频500题难、易错点模拟试题附带答案详解
- 2024年湖南永州市零陵区引进急需紧缺专业人才68人高频500题难、易错点模拟试题附带答案详解
- 2024年湖南怀化市总工会招聘高频500题难、易错点模拟试题附带答案详解
- 2024年湖南常德高新区事业单位招聘硕士研究生及以上学历人才历年高频500题难、易错点模拟试题附带答案详解
- Unit 2 Different families 第四课时(教学设计)-2024-2025学年人教PEP版(2024)英语三年级上册
- 2024-2025学年部编版语文七年级上册 第一次月考试卷
- 心肺复苏技能操作考核表
- 八年级物理上册 第一章 走进实验室 1.1走进实验室:学习科学探究教学设计 (新版)教科版
- 2024-2030年中国松香(CAS 8050-09-7)行业市场发展趋势与前景展望战略分析报告
- 二十届三中全知识点
- 2024广西专业技术人员继续教育公需科目参考答案(97分)
- 人教版2024-2025学年度九年级上册数学第二十二章(二次函数)单元测试卷
- 江苏省建筑与装饰工程计价定额(2014)电子表格版
- 羽毛球正手击高远球评课稿
- Excel股票交易记录表
评论
0/150
提交评论