




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验 2 3 循环程序设计 1 实验目的 1 掌握三种循环语句的使用 能分析循环的执行过程 2 掌握 break 和 continue 语句的使用 3 了解如何利用求余和整除操作获取和删除一个整数的最低位 4 掌握累加 累乘的处理方法 5 掌握计数问题的编写技巧 如何控制每行输出元素个数 2 知识要点 循环就是反复执行一段代码 直到满足结束条件 循环语句一般包括初始化 循环体 迭代和判断 4 部分 2 12 1 whilewhile 循环与循环与 dodo whilewhile 循环的使用差异循环的使用差异 while 语句的格式 while 条件表达式 循环体 特点是 先判断 后执行 循环体有可能执行 0 次 do while 循环的格式 do 循环体 while 条件表达式 特点是 先执行 后判断 循环体至少要执行 1 次 建议 在程序设计中尽量不用 do while 循环 而用 while 循环 2 22 2 forfor 循环与循环与 whilewhile 循环的对应关系循环的对应关系 for 控制变量赋初值 循环条件 增值 循环体 等价于 控制变量赋初值 While 循环条件 循环体 控制变量增值 注意几点 1 for 循环的执行过程是先做初始化 然后判断是否满足结束条件 若满足 则执 行循环体 在执行完循环体后进行迭代增值 2 初始化部分和增值部分可以使用逗号语句执行多个操作 3 三部分均为空 写成 for 相当于一个无限循环 2 32 3 continuecontinue 和和 breakbreak 语句的作用语句的作用 continue 跳过之后的语句 继续下一轮循环 break 跳出直接所处循环 带标号的 continue 可以回到标号指定的那级循环的下一轮执行 带标号的 break 可以跳出标号指定的那级循环 2 42 4 常见问题处理常见问题处理 1 累加问题的解决办法 累加变量的初值设置在循环外 通常赋 0 为初值 2 如何利用循环求阶乘 累乘 在循环外设置变量初值为 1 3 如何控制每行的输出数据个数 计数问题 4 如何产生一定范围的随机整数 Math random 产生的数是 0 到 1 之间的小数 不包括 0 和 1 要产生随机整数必须先放大再取整 3 样例程序 样例样例 1 1 输入一批学生成绩 以 1 作为结束标记 1 统计这批学生中 不及格 及格 中等 良好 优秀的人数 2 求这批学生的平均分 分析 根据要求不难看出这是一个计数和累加问题 学生数量不确定 但有一个结 束标记 1 该问题从总体结构是一个循环处理问题 可采用 while 循环 当输入数据 为 1 时结束循环 为了统计各种情况的人数 需要设立相应的计数变量 并给其赋初值 0 另外为了求平均分 必须计算总分 也就是计算出所有学生成绩的累加和 然后除总人 数即可得到平均 参考程序 import java io public class Score public static void main String args throws IOException int s 0 b 0 c 0 d 0 e 0 f 0 变量赋初值 BufferedReader br new BufferedReader new InputStreamReader System in int a Integer parseInt br readLine 读取一个整数 while a 1 s a 累加 switch a 10 case 0 case 1 case 2 case 3 case 4 case 5 b break 计数增 1 case 6 c break case 7 d break case 8 e break case 9 f break a Integer parseInt br readLine System out println 优秀人数 f System out println 良好人数 e System out println 中等人数 d System out println 及格人数 c System out println 不及格人数 b int average s b c d e f 求平均成绩 System out println 平均分 average 说明 程序流图见图 4 1 程序总体结构上是一个循环问题 在循环内部要分情况 统计各分数段人数 包含一个是 switch 语句 在输入数据时未处理异常 所以在 main 方 法的头部增加 throws IOException 声明该方法会抛出 IO 异常 编程技巧 1 用 while 循环控制数据的录入和处理过程 1 作为循环的结束标记 注意循环体 的最后要有输入数据的语句 以便得到新的处理数据 2 如何将各分数档按情况进行分别处理 掌握除 10 取整后得到数据的特征 3 记住累加和计数问题的处理技巧 样例样例 2 2 找 10 100 之间能被 或 整除的数 每行输出 5 个数 参考程序 public class A public static void main String arge int k 10 循环控制变量 从 10 变化到 100 int m 0 用于统计输出数的个数 while k 100 循环的终值为 100 if k 3 0 k 5 0 被 3 或 5 整除 m System out print k t if m 5 0 控制每隔 5 个输出数换一行 System out println k 循环控制变量增值 说明 本程序是找出一定范围内 10 100 查找满足条件的数 这里有两个关键 一是如何表达一个数被 3 或 5 整除 用到求余运算符和逻辑或 二是为了控制每行输出 5 个数 必须对输出的数进行统计 因此 本程序的实质也要用到计数 注意 print 和 println 的差别 编程技巧 1 3 或 5 整除的逻辑表达问题 2 如何控制一行输出 5 个数 样例样例 3 3 编写一个程序从键盘输入 10 个整数 将最大 最小的整数找出来输出 参考程序 import java io public class Find public static void main String a throws IOException int m 0 n Integer MAX VALUE 用 m n 存放需求的最大 最小整数 BufferedReader br new BufferedReader new InputStreamReader System in for int k 1 km m x 如果比最大的还大 那 x 成为最大的 if x n n x System out println 最大整数 m System out println 最小整数 n 编程技巧 1 分别引入两个变量 m n 用来保存所求的最大与最小数值 在循环外为这两个变 量假定一个值 为多大合适 然后在循环内将其他值与其比较 也可以先假定第一个数 据为最大 最小 然后将剩余数据与其比较 2 不要忘记将获取新数据的输入语句放在循环内 3 结束循环后输出结果 样例样例 4 4 计算算式 1 21 22 23 2n 注 n 由键盘输入 参考程序 1 public class Twoadd public static void main String args int n Integer parseInt args 0 long sum 1 for int k 1 k n k sum sum long Math pow 2 k 用 Math 类的 pow 方法求 2k System out println result sum 参考程序 2 public class Twoadd public static void main String args int n Integer parseInt args 0 从命令行输入 n long sum 1 保存累加和 long x 1 被加项 for int k 1 k0 m a 10 累加计算各位数字 a a 10 System out print a 的各位数字之和 m 编程技巧 4 如何取一个数的最低位 5 如何计算去掉最低进后的数 6 如何设置循环的条件 思考 如何修改程序 使程序的输出形式为 54237 5 4 2 3 7 21 样例样例 6 6 计算 n 至少多大时 以下不等式成立 1 1 2 1 3 1 n 10 参考程序 public class Limit public static void main String args int n 0 double s 0 while s 10 n n 1 n 的值增加 1 s s 1 0 n 进行累加 System out println n n 输出最后的 n 运行结果 n 12367 编程技巧 1 累加一定要表示为 1 0 n 的形式 如果只写 1 n 则只要 n 大于 1 结果均为 0 2 循环条件的表达 以累加和的结果小于等于 10 为条件 结束循环时 累加和大 于 10 n 就是所求的结果 样例样例 7 7 利用随机函数产生 10 道两位数的加法题 判断用户得分 提示 产生随机数用以下办法 x int 10 Math random 90 程序运行界面为 12 34 xx 45 67 xx 你的得分为 70 分析 出 10 道题 总体是个循环问题 每一道题先要产生出试题 显示试题给用户 然后 获取用户的解答 比较用户解答与计算机的计算值是否相等 如果相等 就得分 循环结束输出得分 参考程序 import java io public class AddTest public static void main String args throws IOException int x y z score 0 BufferedReader br new BufferedReader new InputStreamReader System in for int i 0 i0 循环 4 1 根据 whoplay 的值决定是计算机拿 x 根还是提示人拿 x 根 计算机拿时最 好带有智能 人拿时要限制输入数量 4 2 修改 whoplay 的值 4 3 修改 remain 的值 5 根据 whoplay 的值决定胜者 4 4 某地刑侦大队对涉及六个嫌疑人的一桩疑案进行分析 A B 至少有一人作案 A E F 三人中至少有两人参与作案 A D 不可能是同案犯 B C 或同时作案 或与本 案无关 C D 中有且仅有一人作案 如果 D 没有参与作案 则 E 也不可能参与作案 试 编一程序 将作案人找出来 5 思考题 1 执行以下程序后 输出结果为 public class ex2 public static void main String args int f 1 int k for k 2 k 5 k f k System out println k A 0 B 1 C 5 D 4 E 24 2 设有如下类 class Loop public static void main String agrs int x 0 int y 0 outer for x 0 x 100 x middle for y 0 y 100 y System out println x x y y if y 10 在 处插入什么代码可以结束外循环 A continue middle B break outer C break middle D continue outer E none of these 3 以下代码的运行结果为 public class Calc public static void main String args int total 0 for int i 0 j 10 total 30 i j System out println i i j j total i j System out println Total total A 产生运行错误 B 产生编译错误 C 输出 Total 0 D 产生如下输出 i 0 j 10 i 1 j 9 i 2 j 8 Total 30 4 以下程序的运行结果为 public class test public static void main String args int i 0 j 2 do i i j while j 0 System out println i A 0 B 1 C 2 3 5 以下程序的运行结果为 class xyz public static void main String args int i j k for i 0 i 3 i for j 1 j 4 j for k 2 k 5 k if i j A 0 B 1 C 2 D 3 E 4 6 以下程序的运行结果为 class test public static void main String args int i j 0 for i 10 i j continue while i 5 执行完后 i j 的值分别为 A i 6 j 5 B i 5 j 5 C i 6 j 4 D i 5 j 6 8 以下程序的输出结果为 public class example public
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度茶叶进口许可证及跨境电商平台合作合同
- 2025年度有机农产品种植项目土地租赁合同
- 2025年度物流企业支付能力评估与担保合同
- 2025年汽车维修企业车辆挂靠业务与会计事务所专业合作合同
- 2025年农村小产权房产权明晰买卖合同示范文本
- 2025年农业无人机植保服务与技术培训合同
- 2025年智能仓储安全监控设备采购及系统集成合同
- 2025年度山体滑坡风险评估与监测数据共享保密合同
- 广告策划服务合同
- 大型礼仪庆典活动策划公司员工保密协议
- 关于卫生院“十五五”发展规划(详细版)
- 期货实物交割管理制度
- T/CHES 43-2020水利水电工程白蚁实时自动化监测预警系统技术规范
- T/CECS 10163-2021纤维增强聚氨酯复合材料杆塔
- 人工智能及机器人课件
- 2024年注会考试《税法》真题及答案
- 2025淘宝天猫·运动户外行业鞋服趋势白皮书
- 机械设备安装施工服务承诺书范文
- 2025年地址标签纸项目市场调查研究报告
- 《绿色经济》课件
- 露天矿山安全培训课件
评论
0/150
提交评论