版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第4章 循环结构程序设计Java程序设计程序设计2学习目标l 熟练掌握while、do-while、for语句基本结构的概念和使用方法l 掌握循环嵌套的概念和使用l 掌握正确使用break和continue语句Java程序设计程序设计34.1 循环结构解决的问题l 实际编程中有很多需要多次重复相同或相似的操作的问题,几乎每一种高级程序设计语言都提供循环控制语句来处理重复操作。如:向计算机系统输入100个学生的档案,重复进行100次输入操作。为全班30个学生分别计算其5门课的平均成绩,重复进行30次求平均数的算术运算。求1 + 2 + 3 + + 100的和,重复进行100次加法操作。检查100
2、名毕业生是否具有获得学位证书的资格,重复进行100次判断操作。l Java语言提供标准的三种循环控制语句:while语句、do-while语句和for语句。Java程序设计程序设计44.1 循环结构解决的问题4.2 while语句l while循环语句的语法结构如下: while(循环继续条件) 循环语句l while循环的执行流程Java程序设计程序设计54.2 while语句l while语句使用时需要注意的方面(1)while语句的循环体只能包含一条语句,当循环体需要多条语句组成时,使用语句块。 while(i100) while(i100) i = i + 1; sum = sum +
3、 i; i = i + 1; (2)循环必须在重复有限的次数后结束,因此要求循环体中应该包含使循环继续条件最终变为false的语句。 while(i100) i = i + 1; Java程序设计程序设计64.2 while语句例4-1:求1 + 2 + 3 + + 100的值,使用while语句。/文件名:GaussProblemWithWhile.javapublic class GaussProblemWithWhile public static void main(String args) int i = 1; /变量i存储参加累加的数,初始值为1 int sum = 0; /变量s
4、um存储和,初始值为0 while (i = 100) sum = sum + i; /累加运算 i+; /i增加1,为下次累加准备,同时也使循环继续条件最终会变成false /循环结束后,执行后面语句,输出结果 System.out.println(sum = + sum); Java程序设计程序设计74.3 do-while语句l do-while循环语句的语法格式: do 循环语句 while(循环继续条件);l do-while循环的执行流程Java程序设计程序设计84.3 do-while语句l do-while语句使用时需要注意的方面(1)注意do-while语句的最后的分号表示语
5、句结束,不能省略。 (2)每次迭代都是先执行循环体,再计算循环继续条件的值,若值为true,则执行循环体;若值为false,则整个循环结构终止,程序继续执行do-while语句后面的语句。 do sum = sum + i; i+; while (i = 100);Java程序设计程序设计94.4 for语句l for循环语句的语法格式: for(初始操作; 循环继续条件; 每次迭代后的操作)l for循环的执行流程Java程序设计程序设计104.4 for语句l for语句执行流程对其各个组成部分进行说明(1)for语句总是从初始操作开始执行的。改部分可以声明变量,但是这些变量只能在for语
6、句内部使用;主要完成循环变量的初始化。(2)循环继续条件是boolean类型的表达式。在初始操作部分执行完成或每一次迭代结束后需要计算该表达式的值,若为true则循环继续,否则终止整个循环结构。(3)循环体也只能有一条语句,需要多条语句时使用语句块。(4)每次迭代后的操作在循环体每次迭代后都要执行。主要完成循环变量值的修改。Java程序设计程序设计114.4 for语句l 例4-3:求1 + 2 + 3 + + 100的值,使用for语句。/文件名:GaussProblemWithFor.javpublic class GaussProblemWithFor public static voi
7、d main(String args) int sum = 0; for (int i = 1; i = 100; i+) sum += i; System.out.println(sum = + sum); Java程序设计程序设计124.5 循环语句的比较l while循环和for循环的循环继续条件的检查是在循环体执行之前进行的,称为前置检测循环,循环体执行次数最少为0次;l do-while循环的循环继续条件的检查是在循环体执行之后进行的,称为后置检测循环,循环体执行次数最少为1次。l 三种循环语句都可以用来处理相同的需要进行重复操作的问题,一般情况下三者之间可以相互替换。Java程序设
8、计程序设计134.5 循环语句的比较编写程序处理循环结构时,选择哪一种循环语句没有严格规定。常用规则如下:l 如果循环次数已经知道的情况使用for语句;l 循环次数不确定的情况使用while语句;l 如果需要在检查循环继续条件之前执行循环体,则使用do-while语句。Java程序设计程序设计144.6 循环嵌套l 一个循环语句的循环体内包含另一个完整的循环结构,称为循环的嵌套。l 循环的嵌套可以有很多层,一个循环的内嵌一层循环叫双层循环嵌套,简称双重循环;如果在双重循环的内层循环中再内嵌一层循环就形成了三重循环。循环嵌套在理论上来说可以是无限的,可以形成多重循环。Java程序设计程序设计15
9、4.6 循环嵌套l 例4-4:在命令行窗口输出九九乘法表。Java程序设计程序设计164.6 循环嵌套程序源码:/文件名:MultiplicationTable.javapublic class MultiplicationTable public static void main(String args) int i, 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
10、, j, i * j); /输出一个乘法等式 System.out.println(); /一行输出结束,输出换行 Java程序设计程序设计174.7 break和continue语句l 循环语句在执行时,预先设定的循环继续条件的值为true循环体就完整执行一次,直到该条件值变为false时终止循环,这称为循环的正常执行。程序设计过程中有时会需要提前终止循环,或者跳过某次迭代中的部分语句直接进入下一次迭代。break语句和continue语句就是用于提前终止循环或提前结束循环的某次迭代。Java程序设计程序设计184.7.1 break语句l break语句可以用于switch语句和循环语句中
11、用于跳出switch语句或者提前终止循环。break语句用于循环语句的语法格式如下: break 语句标号;l 方括号表示其中的语句标号是可选的,语句标号的定义形式是一个合法的Java标识符后面加上一个冒号,通常放在循环语句的前面,用以指明它代表该循环语句。Java程序设计程序设计194.7.1 break语句Java程序设计程序设计204.7.1 break语句Java程序设计程序设计214.7.1 break语句Java程序设计程序设计22例4-5:判断正整数是否为质数。从键盘输入一个正整数,判断并输出是否为质数。 解题思路:根据质数的定义,除1和本身外不能被其他整数整除的整数。因此对任意
12、的正整数n,只需要从2开始到n-1结束,依次尝试n是否被某个数整除即可。可以先假设n是质数,若找到一个数i使n%i=0,则确定n不是质数,此时从i+1到n-1的数就不需要尝试了,可以提前结束循环。4.7.1 break语句Java程序设计程序设计23import java.util.Scanner;public class Prime public static void main(String args) Scanner input = new Scanner(System.in); int n = input.nextInt(); boolean isPrime = true; /假设n是
13、质数 for (int i = 2; i n; i+) if (n % i = 0) /如果条件成立,表示找到可以整除的数 isPrime = false; /确定n不是质数 break; /提前结束循环 if (isPrime) System.out.println(n + 是质数.); else System.out.println(n + 不是质数.); 4.7.2 continue语句Java程序设计程序设计24 continue语句实现提前结束循环的本次迭代,直接进入下一次迭代,其语法形式为: continue 语句标号; continue语句的语句标号使用方法与break语句相同。
14、continute语句的作用是提前结束语句标号指明的循环的本次迭代,即跳过continue语句后面直到循环体末尾的所有语句,直接去重新判断循环继续条件,再决定是否开始下一次迭代。省略语句标号时针对包括continue语句的最内层循环。4.7.2 continue语句Java程序设计程序设计254.7.2 continue语句Java程序设计程序设计264.7.2 continue语句Java程序设计程序设计27l 例4-6:输出100至200之间不能被7整除的数。 解题思路:很明显需要从100开始到200为止,依次对每个整数进行检查能否被7整除,如果能够被7整除则跳过输出,直接检查下一个数;不
15、能整除时输出。其中跳过输出的操作可以由continue语句完成。4.7.2 continue语句Java程序设计程序设计28程序源码:/文件名:OutputNumber.javapublic class OutputNumber public static void main(String args) /依次检查100200的每个数 for (int i = 100; i = 200; i+) if (i % 7 = 0) continue; /如果被7整除,跳过下面的输出语句 System.out.println(i); 4.8 循环结构程序举例Java程序设计程序设计29例4-7:求Fib
16、onacci数列的前20个数。该数列的特点:前两个数F1和F2均为1,从第3个数开始,Fn=Fn-1+Fn-2。 解题思路:要解决该问题,很明显需要使用循环结构,循环体中重复执行的是利用前2个数之和计算后面数。设f1表示第1个数,f2表示第2个数,则f3=f1+f2为第3个数;然后将f2赋给f1,f3赋给f2,则f1表示第2个数,f2表示第3个数,则f3=f1+f2为第4个数,依次类推。4.8 循环结构程序举例Java程序设计程序设计30例4-9:求用数字09可以组成多少个没有重复的三位奇数,并输出这些三位数。解题思路:该问题的解决需要将所有满足条件的可能情况全部列出来,需要用循环嵌套来处理,对百位、十位、个位分别采用循环。按照题意,百位数字的变化范围是1-9,十位数字的变化范围是0-9,个位数字的变化范围是1-9
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国澳毛项目投资可行性研究报告
- 2025公司全体职员劳务合同制员工劳动合同样本
- 中国智能型行人过街信号机项目投资可行性研究报告
- 中国气刀级高岭土项目投资可行性研究报告
- 中国碎纸碎卡机项目投资可行性研究报告
- 中国硅胶片材项目投资可行性研究报告
- 驾驶室电动丝杆举升器行业深度研究报告
- 下颌角肥大的护理个案
- 膝关节十字韧带断裂的护理个案
- 2025企业办公空间租赁合同书办公空间租赁合同
- 2025年磷矿石行业分析报告及未来发展趋势预测
- 2025年国企行测题库行测人文常识模拟题笔试参考题库附带答案详解
- 2025年全球网络安全的区块链应用
- 2025山东省教育厅直属事业单位省教育发展服务中心第二批招聘9人笔试考试备考试题及答案解析
- 2025海南琼海市社区专职网格员招聘为社区专职人员50人(1号)考试笔试模拟试题及答案解析
- 贵州国企招聘2025贵州盐业(集团)黔东南有限责任公司招聘笔试历年参考题库附带答案详解
- 保护江安河保护江安河
- 2025江苏苏州市姑苏区人民武装部公益性岗位招聘2人备考考试试题及答案解析
- 安全生产信息安全管理制度
- 高职院校专业课程教学质量评价标准
- 人教版八年级生物上册《第五单元生物与环境》单元测试卷及答案
评论
0/150
提交评论