




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章 循环结构 本章学习重点 lwhile、do-while以及for语句 。 l跳转语句break和continue 。 l分支及循环结构的嵌套编程 。 l较复杂程序的执行流程分析 。 4.1 循环结构 l在进行程序设计时,经常会碰到一些计算并不 很复杂,但却要重复进行相同的处理操作的问 题。比如: l(1)计算累加和1+2+3+100。 l(2)计算阶乘,如10!。 l(3)计算一笔钱在银行存了若干年后,连本 带息有多少? l问题(1),用一条语句:sum = 1+2+3+100 来求解,则赋值表达式太长, l改成多条赋值语句:sum +=1; sum +=2; sum +=3; ; sum +=100;也不行,即便加到100那也 有100条语句,程序过于臃肿,不利编辑、存储 和运行。 lJava语言引入三种语句:while、do-while以及for 来解决这类问题。我们把这类问题的结构称为循 环结构,把这三种实现语句称为循环语句。 l这三种循环语句的流程图如下所示: while语句 lwhile语句的一般语法格式如下: while(条件表达式) 循环体; while是关键字,首先计算条件表达式的值,若为true则 执行循环体,然后再计算条件表达式的值,只要是true 就循环执行,直到布尔值为false才结束退出while结构 。 循环体可以是复合语句、简单语句甚至是空语句, 一般情况下,循环体中应包含有能修改条件表达式取值 的语句,否则就容易出现“死循环”(程序毫无意义地无 限循环下去)。 例如:while(1);这里,循环体为一空语句,而条件 表达式为一常量1(Java语言里,0代表false,非0为 true),因此这是一死循环。 【例4-1】利用while语句实现1到100的累加。 public static void main(String args) int sum=0; /累加和变量sum int i=1; / 控制变量i while(i50) break; System.out.println(“s=“+s); 【例4-10】写出以下程序执行后的输出结果。 public class Test public static void main(String args) int jc=1,i=1; while(true) jc=jc*i; i=i+1; if (jc100000) /首先突破10万的阶乘 break; System.out.println(i-1)+“的阶乘值是“+jc); 【例4-11】写出以下程序执行后的输出结果。 public class Test public static void main(String args) int s=0,i=1; label: while(true) while(true) if (i%2=0) break ; /不带标号 if(s50) break label; /带标号 s+=i+; i+; System.out.println(“s=“+s); 2 continue lcontinue语句只能用于循环结构,它也有两种使用形式:不带 标号和带标号。 l前者的功能是提前结束本次循环,即跳过当前循环体的其他后 续语句,提前进入下一轮循环体继续执行。对于while和do- while循环,不带标号的continue语句会使流程直接跳转到条件 表达式,而对于for循环,则跳转至表达式3,修改控制变量后 再进行条件表达式2的判断。 l带标号continue语句多用在多重循环结构中,标号的位置与 break语句的标号位置相类似,一般需放至整个循环结构的前面 ,用来标识这个循环结构,一旦内层循环执行了带标号 continue语句,程序流程则跳转到标号处的最外层循环,具体 是:while和do-while循环,跳转到条件表达式,for循环,跳转 至表达式3。 【例4-12】写出以下程序执行后的输出结果。 public class Test public static void main(String args) int s=0,i=0; do i+; if (i%2!=0) continue; s+=i; while(s50); System.out.println(“s=“+s); 【例4-13】写出以下程序执行后的输出结果。 public class Test public static void main(String args) int i,j; label: for(i=1;i=200;i+) /查找1到200以内的素数 for(j=2;ji;j+) /检验是否不满足素数条件 if (i%j=0) /不满足 continue label; /跳过后面不必要的检验 System.out.print(“ “+i); /打印素数 提示: l 跳转语句break及continue的使用,使得程序 流程设计变得
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 散货采购合同协议
- 树木招标合同协议
- 手工回购合同协议
- 招学徒工合同协议
- 物业财务合同协议
- 水路工程合同协议
- 销售沙子合同协议
- 雪糕销售合同协议
- 赠送车位合同协议
- 饲料配送合同协议
- 第9课《美丽的颜色》说课稿 2024-2025学年统编版语文八年级上册
- 制造业劳务外包质量控制制度
- DB11∕T 864-2020 园林绿化种植土壤技术要求
- 《飞向太空的航程》名师课件
- 表面技术概论化学转化膜
- 2025年哈尔滨市中考数学模拟试卷(附答案解析)
- 各行业安全风险分级管控清单
- 父母赠与现金合同范本
- T-CPA 006-2024 造纸用湿强剂 聚酰胺环氧氯丙烷PAE
- 年产20万吨碳酸钾蒸发车间设计
- 招标代理服务服务方案
评论
0/150
提交评论