




免费预览已结束,剩余23页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章Java循环结构 本章学习重点 while do while以及for语句 跳转语句break和continue 分支及循环结构的嵌套编程 较复杂程序的执行流程分析 4 1循环结构 在进行程序设计时 经常会碰到一些计算并不很复杂 但却要重复进行相同的处理操作的问题 比如 1 计算累加和1 2 3 100 2 计算阶乘 如10 3 计算一笔钱在银行存了若干年后 连本带息有多少 问题 1 用一条语句 sum 1 2 3 100来求解 则赋值表达式太长 改成多条赋值语句 sum 1 sum 2 sum 3 sum 100 也不行 即便加到100那也有100条语句 程序过于臃肿 不利编辑 存储和运行 Java语言引入三种语句 while do while以及for来解决这类问题 我们把这类问题的结构称为循环结构 把这三种实现语句称为循环语句 这三种循环语句的流程图如下所示 while语句 while语句的一般语法格式如下 while 条件表达式 循环体 while是关键字 首先计算条件表达式的值 若为true则执行循环体 然后再计算条件表达式的值 只要是true就循环执行 直到布尔值为false才结束退出while结构 循环体可以是复合语句 简单语句甚至是空语句 一般情况下 循环体中应包含有能修改条件表达式取值的语句 否则就容易出现 死循环 程序毫无意义地无限循环下去 例如 while 1 这里 循环体为一空语句 而条件表达式为一常量1 Java语言里 0代表false 非0为true 因此这是一死循环 例4 1 利用while语句实现1到100的累加 publicstaticvoidmain String args intsum 0 累加和变量suminti 1 控制变量iwhile i 100 sum i i System out println 累加和为 sum 1 存放累加和的变量初始值一般赋值为0 2 变量i既是累加数 同时又是控制变量 控制循环体的循环次数 3 循环体语句sum i i 可以合并简写为 sum i 但对于初学者而言 不建议这么写 while循环体语句多于一条 因而必须以复合语句形式出现 千万别漏了大括号 例4 2 利用while语句求10的阶乘 publicclassTest publicstaticvoidmain String args longjc 1 inti 1 while i 10 jc i i System out println i 1 结果 jc 本程序需要注意的要点有 1 求阶乘的积时 变量jc初始值应为1 2 由于阶乘的积 数值往往比较大 因此要注意防止溢出 比如尽量选用取值范围大的长整型long 例4 4 有一条长的阶梯 如果每步2阶 则最后剩1阶 每步3阶则剩2阶 每步5阶则剩4阶 每步6阶则剩5阶 只有每步7阶的最后才刚好走完 一阶不剩 问这条阶梯最少共有多少阶 publicclassTest publicstaticvoidmain String args inti 1 while i 2 1 假如现在想算出在1万个阶梯内 都有哪些阶梯数满足题意的话 可以这样改写程序中的while结构 while i 10000 if i 2 1 新程序运行结果如下 119阶329阶539阶749阶959阶1169阶1379阶1589阶1799阶2009阶2219阶2429阶2639阶2849阶3059阶3269阶3479阶3689阶3899阶4109阶4319阶4529阶4739阶4949阶5159阶5369阶5579阶5789阶5999阶6209阶6419阶6629阶6839阶7049阶7259阶7469阶7679阶7889阶8099阶8309阶8519阶8729阶8939阶9149阶9359阶9569阶9779阶9989阶 do while语句 do while语句的语法格式如下 do 循环体 while 条件表达式 例4 5 假定在Bank中存款额5000元 按6 25 的年利率计算 试问过多少年后就会连本带利翻一翻 试编程实现之 publicclassTest publicstaticvoidmain String args doublem 5000 0 初始存款额doubles m 当前存款额intcount 0 存款年数do s 1 0 0625 s count while s 2 m System out println count 年后连本带利翻一翻 for语句 for语句的一般语法格式如下 for 表达式1 条件表达式2 表达式3 循环体 表达式1一般用来给循环控制变量赋初值 它仅在刚开始时被执行一次 以后就不再被执行 表达式2是一个条件表达式 根据其取值的不同 决定循环体是否被执行 若为true 则执行循环体 然后再执行表达式3 表达式3通常用作修改循环控制变量之用 接着又判断条件表达式2的布尔值 若还为true 则继续上述循环 直至布尔值变为false 例4 6 利用for语句实现1到100的累加 publicclassTest publicstaticvoidmain String args intsum 0 累加和变量sumfor inti 1 i 100 i 控制变量i sum i System out println 累加和为 sum 例4 7 假定在Bank中存款额5000元 按6 25 的年利率计算 试问过多少年后就会连本带利翻一翻 试用for语句编程实现之 publicclassTest publicstaticvoidmain String args doublem 5000 0 初始存款额doubles m 当前存款额intcount 0 存款年数for s 2 m s 1 0 0625 s count System out println count 年后连本带利翻一翻 4 2循环嵌套 当循环体语句又是循环语句时 就构成了循环嵌套 即多重循环 循环嵌套可以是两重的 三重的甚至更多重 较复杂的算法 例4 8 编程实现打印以下图案 publicclassTest publicstaticvoidmain String args inti j i控制行数 j控制 的个数for i 1 i 6 i for j 1 j i 2 1 j System out print System out println 换行 4 3跳转语句 breakcontinuereturn 1 break break语句的作用是使程序的流程从一个语句块的内部跳转出来 如前述的switch结构以及循环结构 break语句的语法格式为 break 标号 标号是可选的 如前面介绍的switch结构程序就没有使用标号 不使用标号的break语句只能跳出当前的switch或循环结构 而带标号的则可以跳出由标号指出的语句块 并从语句块的下条语句处继续程序的执行 因此 带标号的break语句可以用来跳出多重循环结构 例4 9 写出以下程序执行后的输出结果 publicclassTest publicstaticvoidmain String args inti s 0 for i 1 i50 break System out println s s 例4 10 写出以下程序执行后的输出结果 publicclassTest publicstaticvoidmain String args intjc 1 i 1 while true jc jc i i i 1 if jc 100000 首先突破10万的阶乘break System out println i 1 的阶乘值是 jc 例4 11 写出以下程序执行后的输出结果 publicclassTest publicstaticvoidmain String args ints 0 i 1 label while true while true if i 2 0 break 不带标号if s 50 breaklabel 带标号s i i System out println s s 2 continue continue语句只能用于循环结构 它也有两种使用形式 不带标号和带标号 前者的功能是提前结束本次循环 即跳过当前循环体的其他后续语句 提前进入下一轮循环体继续执行 对于while和do while循环 不带标号的continue语句会使流程直接跳转到条件表达式 而对于for循环 则跳转至表达式3 修改控制变量后再进行条件表达式2的判断 带标号continue语句多用在多重循环结构中 标号的位置与break语句的标号位置相类似 一般需放至整个循环结构的前面 用来标识这个循环结构 一旦内层循环执行了带标号continue语句 程序流程则跳转到标号处的最外层循环 具体是 while和do while循环 跳转到条件表达式 for循环 跳转至表达式3 例4 12 写出以下程序执行后的输出结果 publicclassTest publicstaticvoidmain String args ints 0 i 0 do i if i 2 0 continue s i while s 50 System out println s s 例4 13 写出以下程序执行后的输出结果 publicclassTest publicstaticvoidmain String args inti j label for i 1 i 200 i 查找1到200以内的素数 for j
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版服装批发购销合同模板
- 2025年职称中级中药试题及答案
- 湖南安全员证题库考试试题及答案
- 2025年智能仓储机器人路径优化算法在化妆品物流中的应用研究
- 中建二测考试题型及答案
- 网络安全培训开展情况课件
- 中国广电考试题库及答案
- 中歌舞蹈考试题库及答案
- 智能建造考试题目及答案
- 智慧服务考试题及答案解析
- 人才服务合同书
- 2025-2026学年统编版八年级上册道德与法治教学计划含教学进度表
- 2025年工会入职考试试题及答案
- 2025年中国电力投资集团校园招聘笔试题型分析及备考策略
- 旅游服务安全知识培训课件
- 公司章程制定合同协议书范本模板
- 2024人教PEP版三年级英语上册全册教案
- 立体车库应急预案范文
- 体彩专管员专业知识培训课件
- 严重腹部创伤院内救治专家共识(2024)解读
- 房内走廊改造方案(3篇)
评论
0/150
提交评论