循环结构程序设计_第1页
循环结构程序设计_第2页
循环结构程序设计_第3页
循环结构程序设计_第4页
循环结构程序设计_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

循环结构程序设计1第1页,共29页,2023年,2月20日,星期四学习目标熟练掌握while、do-while、for语句基本结构的概念和使用方法掌握循环嵌套的概念和使用掌握正确使用break和continue语句2第2页,共29页,2023年,2月20日,星期四4.1循环结构解决的问题实际编程中有很多需要多次重复相同或相似的操作的问题,几乎每一种高级程序设计语言都提供循环控制语句来处理重复操作。如:向计算机系统输入100个学生的档案,重复进行100次输入操作。为全班30个学生分别计算其5门课的平均成绩,重复进行30次求平均数的算术运算。求1+2+3+…+100的和,重复进行100次加法操作。检查100名毕业生是否具有获得学位证书的资格,重复进行100次判断操作。3第3页,共29页,2023年,2月20日,星期四Java语言提供标准的三种循环控制语句:while语句、do-while语句和for语句。4.1循环结构解决的问题4第4页,共29页,2023年,2月20日,星期四4.2while语句

while循环语句的语法结构如下:while(循环继续条件)

循环语句while循环的执行流程5第5页,共29页,2023年,2月20日,星期四4.2while语句while语句使用时需要注意的方面(1)while语句的循环体只能包含一条语句,当循环体需要多条语句组成时,使用语句块。while(i<100)while(i<100)i=i+1;{sum=sum+i;i=i+1;}(2)循环必须在重复有限的次数后结束,因此要求循环体中应该包含使循环继续条件最终变为false的语句。while(i<100){i=i+1;}6第6页,共29页,2023年,2月20日,星期四4.2while语句例4-1:求1+2+3+…+100的值,使用while语句。//文件名:GaussProblemWithWhile.javapublicclassGaussProblemWithWhile{publicstaticvoidmain(String[]args){inti=1;//变量i存储参加累加的数,初始值为1intsum=0;//变量sum存储和,初始值为0

while(i<=100){sum=sum+i;//累加运算i++;//i增加1,为下次累加准备,同时也使循环继续条件最终会变成false}

//循环结束后,执行后面语句,输出结果System.out.println("sum="+sum);}}7第7页,共29页,2023年,2月20日,星期四4.3do-while语句do-while循环语句的语法格式:do

循环语句while(循环继续条件);do-while循环的执行流程8第8页,共29页,2023年,2月20日,星期四4.3do-while语句do-while语句使用时需要注意的方面(1)注意do-while语句的最后的分号表示语句结束,不能省略。

(2)每次迭代都是先执行循环体,再计算循环继续条件的值,若值为true,则执行循环体;若值为false,则整个循环结构终止,程序继续执行do-while语句后面的语句。do{sum=sum+i;i++;}while(i<=100);9第9页,共29页,2023年,2月20日,星期四4.4for语句for循环语句的语法格式:for(初始操作;循环继续条件;每次迭代后的操作)for循环的执行流程10第10页,共29页,2023年,2月20日,星期四4.4for语句for语句执行流程对其各个组成部分进行说明(1)for语句总是从初始操作开始执行的。改部分可以声明变量,但是这些变量只能在for语句内部使用;主要完成循环变量的初始化。(2)循环继续条件是boolean类型的表达式。在初始操作部分执行完成或每一次迭代结束后需要计算该表达式的值,若为true则循环继续,否则终止整个循环结构。(3)循环体也只能有一条语句,需要多条语句时使用语句块。(4)每次迭代后的操作在循环体每次迭代后都要执行。主要完成循环变量值的修改。11第11页,共29页,2023年,2月20日,星期四4.4for语句例4-3:求1+2+3+…+100的值,使用for语句。//文件名:GaussProblemWithFor.javpublicclassGaussProblemWithFor{publicstaticvoidmain(String[]args){intsum=0;for(inti=1;i<=100;i++){sum+=i;}System.out.println("sum="+sum);}}12第12页,共29页,2023年,2月20日,星期四4.5循环语句的比较while循环和for循环的循环继续条件的检查是在循环体执行之前进行的,称为前置检测循环,循环体执行次数最少为0次;do-while循环的循环继续条件的检查是在循环体执行之后进行的,称为后置检测循环,循环体执行次数最少为1次。三种循环语句都可以用来处理相同的需要进行重复操作的问题,一般情况下三者之间可以相互替换。13第13页,共29页,2023年,2月20日,星期四4.5循环语句的比较编写程序处理循环结构时,选择哪一种循环语句没有严格规定。常用规则如下:如果循环次数已经知道的情况使用for语句;循环次数不确定的情况使用while语句;如果需要在检查循环继续条件之前执行循环体,则使用do-while语句。14第14页,共29页,2023年,2月20日,星期四4.6循环嵌套

一个循环语句的循环体内包含另一个完整的循环结构,称为循环的嵌套。循环的嵌套可以有很多层,一个循环的内嵌一层循环叫双层循环嵌套,简称双重循环;如果在双重循环的内层循环中再内嵌一层循环就形成了三重循环。循环嵌套在理论上来说可以是无限的,可以形成多重循环。15第15页,共29页,2023年,2月20日,星期四4.6循环嵌套

例4-4:在命令行窗口输出九九乘法表。16第16页,共29页,2023年,2月20日,星期四4.6循环嵌套

程序源码://文件名:MultiplicationTable.javapublicclassMultiplicationTable{publicstaticvoidmain(String[]args){inti,j;//表示乘数、j表示被乘数for(i=1;i<=9;i++){//外层循环控制输出行,第i次循环输出第i行for(j=1;j<=i;j++){//内层循环控制输出乘法等式,第i行有i个等式System.out.printf("%d*%d=%2d",i,j,i*j);//输出一个乘法等式}System.out.println();//一行输出结束,输出换行}}}17第17页,共29页,2023年,2月20日,星期四4.7break和continue语句

循环语句在执行时,预先设定的循环继续条件的值为true循环体就完整执行一次,直到该条件值变为false时终止循环,这称为循环的正常执行。程序设计过程中有时会需要提前终止循环,或者跳过某次迭代中的部分语句直接进入下一次迭代。break语句和continue语句就是用于提前终止循环或提前结束循环的某次迭代。18第18页,共29页,2023年,2月20日,星期四4.7.1break语句

break语句可以用于switch语句和循环语句中用于跳出switch语句或者提前终止循环。break语句用于循环语句的语法格式如下:break[语句标号];方括号表示其中的语句标号是可选的,语句标号的定义形式是一个合法的Java标识符后面加上一个冒号,通常放在循环语句的前面,用以指明它代表该循环语句。19第19页,共29页,2023年,2月20日,星期四4.7.1break语句

20第20页,共29页,2023年,2月20日,星期四4.7.1break语句

21第21页,共29页,2023年,2月20日,星期四4.7.1break语句

例4-5:判断正整数是否为质数。从键盘输入一个正整数,判断并输出是否为质数。

解题思路:根据质数的定义,除1和本身外不能被其他整数整除的整数。因此对任意的正整数n,只需要从2开始到n-1结束,依次尝试n是否被某个数整除即可。可以先假设n是质数,若找到一个数i使n%i==0,则确定n不是质数,此时从i+1到n-1的数就不需要尝试了,可以提前结束循环。22第22页,共29页,2023年,2月20日,星期四4.7.1break语句

importjava.util.Scanner;publicclassPrime{publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);intn=input.nextInt();booleanisPrime=true;//假设n是质数for(inti=2;i<n;i++){if(n%i==0){//如果条件成立,表示找到可以整除的数isPrime=false;//确定n不是质数break;//提前结束循环}}if(isPrime){System.out.println(n+"是质数.");}else{System.out.println(n+"不是质数.");}}}23第23页,共29页,2023年,2月20日,星期四4.7.2continue语句

continue语句实现提前结束循环的本次迭代,直接进入下一次迭代,其语法形式为:continue[语句标号];continue语句的语句标号使用方法与break语句相同。continute语句的作用是提前结束语句标号指明的循环的本次迭代,即跳过continue语句后面直到循环体末尾的所有语句,直接去重新判断循环继续条件,再决定是否开始下一次迭代。省略语句标号时针对包括continue语句的最内层循环。24第24页,共29页,2023年,2月20日,星期四4.7.2continue语句

25第25页,共29页,2023年,2月20日,星期四4.7.2continue语句

26第26页,共29页,2023年,2月20日,星期四4.7.2continue语句

例4-6:输出100至200之间不能被7整除的数。

解题思路:很明显需要从100开始到200为止,依次对每个整数进行检查能否被7整除,如果能够被7整除则跳过输出,直接检查下一个数;不能整除时输出。其中跳过输出的操作可以由continue语句完成。27第27页,共29页,2023年,2月20日,星期四4.7.2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论