第5章累加与阶乘——循环结构.ppt
第第5章章 累加与阶乘累加与阶乘循环结构循环结构 能力目标:能力目标:n学会使用学会使用for、while和和do-while循环语句,理解递归循环语句,理解递归调用方法。调用方法。n学会使用加赋值、乘赋值等复合赋值运算符。学会使用加赋值、乘赋值等复合赋值运算符。n能运用循环结构编写计算累加、阶乘以及乘法表等应用能运用循环结构编写计算累加、阶乘以及乘法表等应用程序。程序。/内容介绍内容介绍n5.1 任务预览任务预览n5.2 while语句语句n5.3 复合赋值运算符复合赋值运算符n5.4 for语句语句n5.5 递归调用方法递归调用方法n5.6 do-while语句语句n5.7 break和和continue语句语句n5.8 多重循环多重循环n5.9 本章小结本章小结n5.10 实训实训5:累加、阶乘与乘法表:累加、阶乘与乘法表/5.1 任务预览任务预览 n本章实训程序运行结果:本章实训程序运行结果:/5.2 while语句语句 n循环语句有循环语句有3个:个:while、for和和do-while。nwhile循环语句的语法形式如下:循环语句的语法形式如下:while(条件表达式条件表达式)循环体循环体/【例例例例5-15-1】编程,计算编程,计算编程,计算编程,计算1 1到到到到1010的累加,的累加,的累加,的累加,即即即即1+2+3+101+2+3+10。int sum=0;int i=1;while(i sum(2)1=i(3)当)当i10时,执行下一时,执行下一步,否则跳转到步骤步,否则跳转到步骤(8)(4)sum+i=sum(5)输出中间结果)输出中间结果sum(6)i+1=i(7)转回步骤()转回步骤(3)(8)输出最后结果)输出最后结果sum。/5.3 复合赋值运算符复合赋值运算符 n复合赋值运算符有:复合赋值运算符有:+=-=*=/=%=&=|=n如:如:sum+=i 相当于相当于 sum=sum+i n又如:又如:String str=We;str+=are;str+=students.;System.out.println(str);n执行上述语句,将输出:执行上述语句,将输出:We are students./5.4 for语句语句 for(变量初始化变量初始化;条件表达式条件表达式;循环变量更新循环变量更新)循环体循环体n【例例5-2】编程,使用编程,使用for语句计算语句计算1到到10的累加。的累加。public class Example2 public static void main(String args)int sum=0;for(int i=1;i=10;i+)sum+=i;/加赋值运算加赋值运算 System.out.printf(1到到%d的累加结果:的累加结果:%dn,i,sum);System.out.printf(最后结果:最后结果:%d,sum);/【例例例例5-35-3】阶乘程序阶乘程序阶乘程序阶乘程序1 1:使用:使用:使用:使用forfor循环语句计算循环语句计算循环语句计算循环语句计算1010的阶乘。的阶乘。的阶乘。的阶乘。public class Example3 public static void main(String args)int factorial=1;for(int i=1;i=1;i-)factorial*=i;return factorial;public static void main(String args)System.out.printf(最后结果:最后结果:%d,calcFactorial(10);/调用阶乘方法调用阶乘方法/5.5 递归调用方法递归调用方法 n数学上用数学上用n!表示!表示n的阶乘,数学公式如下:的阶乘,数学公式如下:n!n(n-1)!(若(若n1)n!1 (若(若n1)n【例例5-5】阶乘程序阶乘程序3:使用递归调用方法计算:使用递归调用方法计算10的阶乘。的阶乘。public class Example5 static long calcFactorial(int n)/递归方法递归方法if(n1)return n*calcFactorial(n-1);/递归调用递归调用else return 1;public static void main(String args)System.out.printf(最后结果:最后结果:%d,calcFactorial(10);/【例例例例5-65-6】使用递归调用编写计算使用递归调用编写计算使用递归调用编写计算使用递归调用编写计算f(n)f(n)的方法,的方法,的方法,的方法,并调用方法计算并调用方法计算并调用方法计算并调用方法计算f(6)f(6)、f(7)f(7)、f(8)f(8)的值。的值。的值。的值。n其中,其中,f(n)f(n-1)+f(n-2)(若(若n3)f(n)1 (若(若n3)npublic class Example6 static int f(int n)/递归调用方法递归调用方法if(n=3)return f(n-1)+f(n-2);else return 1;public static void main(String args)System.out.printf(f(%d)%dn,6,f(6);System.out.printf(f(%d)%dn,7,f(7);System.out.printf(f(%d)%dn,8,f(8);/5.6 do-while语句语句 do 循环体循环体while(条件表达式条件表达式);n【例例5-7】编程,使用编程,使用do循环语句计算循环语句计算1到到10的累加。的累加。public class Example7 public static void main(String args)int sum=0;int i=1;do sum+=i;System.out.printf(1到到%d的累加结果:的累加结果:%dn,i,sum);i+;while(i=10);System.out.printf(最后结果:最后结果:%d,sum);/5.7 break和和continue语句语句 nbreak可跳出多分支语句可跳出多分支语句switch和循环语句。和循环语句。ncontinue只能用于循环语句,结束本轮、继续下轮循环。只能用于循环语句,结束本轮、继续下轮循环。n【例例5-8】编程,求编程,求1到到10的累加,要求使用的累加,要求使用break和和continue语句。语句。int sum=0;int i=1;while(true)sum+=i;System.out.printf(1到到%d的累加结果:的累加结果:%dn,i,sum);i+;if(i=10)continue;else break;System.out.printf(最后结果:最后结果:%d,sum);/【例例例例5-95-9】编程,计算编程,计算编程,计算编程,计算1 1到到到到2020中除中除中除中除5 5、1515以外的以外的以外的以外的所有奇数的平方,但若平方值超过所有奇数的平方,但若平方值超过所有奇数的平方,但若平方值超过所有奇数的平方,但若平方值超过300300,则终止。,则终止。,则终止。,则终止。public class Example9 public static void main(String args)int square;for(int i=1;i300)break;System.out.printf(%d的平方:的平方:%dn,i,square);/5.8 多重循环多重循环 n二重以上的循环就是多重循环。二重以上的循环就是多重循环。n【例例5-10】编程,使用二重循环,输出编程,使用二重循环,输出8行行4列的表格。列的表格。public class Example10 public static void main(String args)for(int i=1;i=8;i+)/i 控制行控制行 for(int j=1;j=4;j+)/j 控制列控制列 System.out.printf(%d行行%d列列 ,i,j);System.out.println();/换行换行 /【例例例例5-115-11】编程,使用二重循环,计算并输出乘编程,使用二重循环,计算并输出乘编程,使用二重循环,计算并输出乘编程,使用二重循环,计算并输出乘法表。法表。法表。法表。public class Example11 public static void main(String args)for(int i=1;i=9;i+)/i控制行控制行 for(int j=1;j=9;j+)/j控制列控制列 System.out.printf(%d%d=%2d ,j,i,j*i);System.out.println();/换行换行 /5.9 本章小结本章小结 n编写循环结构主要使用循环语句。编写循环结构主要使用循环语句。Java有有3个循环语句:个循环语句:while、for和和do-while。其中。其中for语句使用频率最多。语句使用频率最多。n一些递归形式的数学函数或公式,除了使用循环语句,也可一些递归形式的数学函数或公式,除了使用循环语句,也可以运用递归调用方法进行编程。实质上递归调用隐含了循环以运用递归调用方法进行编程。实质上递归调用隐含了循环结构。结构。n复合赋值运算符如加赋值、乘赋值等,这些运算符把两种运复合赋值运算符如加赋值、乘赋值等,这些运算符把两种运算合并成一种,显得非常简练。可在循环语句中使用加赋值算合并成一种,显得非常简练。可在循环语句中使用加赋值进行累加运算。进行累加运算。n使用使用break语句终止循环语句。语句终止循环语句。n要中止本次循环而继续下一轮循环,则使用要中止本次循环而继续下一轮循环,则使用continue语句。语句。n循环语句也可相互嵌套,形成多重循环,如二重循环。循环语句也可相互嵌套,形成多重循环,如二重循环。/5.10 实训实训5:累加、阶乘与乘法表:累加、阶乘与乘法表 n(1)编写计算)编写计算1到到n的累加程序,要求程序运行时输入正整的累加程序,要求程序运行时输入正整数数n的值。的值。n(2)编程,计算)编程,计算n的阶乘,要求运行时输入不超过的阶乘,要求运行时输入不超过20的正的正整数整数n。n(3)编程,使用二重循环,输出下三角形状的乘法表。)编程,使用二重循环,输出下三角形状的乘法表。n(4)(选做)运用递归调用编写)(选做)运用递归调用编写1到到n的累加方法(即的累加方法(即1到到n的累加,等于的累加,等于n加上加上1到到n-1的累加),并调用该方法计算的累加),并调用该方法计算100的累加。的累加。n(5)(选做)编程,使用循环结构计算)(选做)编程,使用循环结构计算1+1/2+2/3+99/100。/谢谢!谢谢!返回目录 结束放映