JAVA循环、数组、字符串.ppt

上传人:本田雅阁 文档编号:2201805 上传时间:2019-03-03 格式:PPT 页数:69 大小:2.40MB
返回 下载 相关 举报
JAVA循环、数组、字符串.ppt_第1页
第1页 / 共69页
JAVA循环、数组、字符串.ppt_第2页
第2页 / 共69页
JAVA循环、数组、字符串.ppt_第3页
第3页 / 共69页
亲,该文档总共69页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《JAVA循环、数组、字符串.ppt》由会员分享,可在线阅读,更多相关《JAVA循环、数组、字符串.ppt(69页珍藏版)》请在三一文库上搜索。

1、循环、数组、字符串,举例说明,循环结构用于解决哪些问题? 循环结构中使用了哪些关键字? 程序调试有哪些步骤? 什么时候选用for循环结构? for循环结构的基本语法和执行顺序是什么? 什么情况下使用数组? 如何定义一个int数组? 怎样引用一个数组中的元素? 字符串有哪些常用方法?,预习检查,理解循环的含义 会使用while循环结构 会使用do-while循环结构 会使用for循环结构 会在程序中使用break、continue和return 掌握数组的基本用法 会应用数组解决简单问题 理解基本数据类型和引用数据类型 字符串常用方法 字符串与基本类型数据之间的转换,本章目标,指导计算100以内

2、偶数之和,训练要点: while循环结构 程序调试 需求说明: 编程实现:计算100以内(包括100)的偶数之和 观察每一次循环中变量值的变化 实现思路: 1、声明整型变量num和sum 2、循环条件:num=100 3、循环操作:累加求和,讲解需求说明,完成时间:20分钟,指导查询商品价格,训练要点: while循环结构 程序调试 需求说明: 循环输入商品编号,显示对应的商品价格 输入“n”结束循环 实现思路: 1、声明变量 2、循环体 3、循环条件 难点指导: 循环体内使用switch,讲解需求说明,完成时间:25分钟,练习升级购物结算,需求说明: 循环输入商品编号和购买数量 当输入n时结

3、账 结账时计算应付金额并找零,完成时间:25分钟,经过几天的学习,老师给张浩一道测试题, 让他先上机编写程序完成, 然后老师检查是否合格。如果不合格,则继续编写。,do 循环操作 while ( 循环条件 );,while (循环条件) 循环操作 ,while循环先判断,再执行不适合描述此故事,?,为什么需要do-while循环,5、如何用程序讲述下面的故事?,do 循环操作 while ( 循环条件 );,先执行一遍循环操作,符合条件,循环继续执行;否则,循环退出,什么是do-while循环,特点:先执行,再判断,分号不可少,while循环和do-while循环的区别 语法不同 执行次序不同

4、 初始情况不满足循环条件时 while循环一次都不会执行 do-while循环不管任何情况都至少执行一次,do 循环操作 while( 循环条件 ) ;,while ( 循环条件 ) 循环操作 ,先判断,再执行,先执行,再判断,比较while和do-while,小结3,使用do-while实现:输出摄氏温度与华氏温度的对照表,要求它从摄氏温度0度到250度,每隔20度为一项,对照表中的条目不超过10条。 转换关系:华氏温度 = 摄氏温度 * 9 / 5.0 + 32,提示: 1、循环操作:计算摄氏温度,并输出对照条目 2、循环条件:条目=10 & 摄氏温度 = 250,参考代码,练习升级菜单切

5、换,需求说明: 如果用户输入错误,可以重复输入直到输入正确,执行相应的操作后退出循环,完成时间:20分钟,什么是for循环,for( ; ; ) ; ,条件为true,循环体被执行,for ( int i = 0 ; i 100 ; i+ ) System.out.println(“好好学习!“); ,代码规范:格式对齐、代码的缩进,表达式1,表达式2,表达式3,循环操作,参数初始化,条件判断,更新循环变量,1,2,4,3,for循环的语法和执行顺序,指导计算顾客比例,训练要点: for循环结构 需求说明: 商场对顾客的年龄层次进行调查 计算各层次的顾客比例 实现思路: 1、定义计数器变量 2

6、、利用循环录入顾客年龄 难点指导: 循环条件和循环体,讲解需求说明,完成时间:25分钟,int i = 2; switch(i) case 1: System.out.println(“星期一“); break; case 2: System.out.println(“星期二“); break; /其他语句,遇到break,立即跳出switch语句,回顾break用于switch语句,描述4000米长跑比赛,for (int i = 0; i10; i+) 跑400米; ,if ( 不能坚持 ) break; /退出比赛 ,第8圈, 快累死了 我要退出,为什么需要break语句,break:改

7、变程序控制流 用于do-while、while、for中时,可跳出循环而执行循环后面的语句,while() break; ,跳出整个循环,break通常在循环中与条件语句一起使用,什么是break语句,如何使用break语句2-1,3、循环录入某学生5门课的成绩并计算平均分,如果某分数录入为负,停止录入并提示录入错误 循环录入成绩,判断录入正确性:录入错误,使用break语句立刻跳出循环;否则,累加求和, for(int i = 0; i 5; i+) /循环5次录入5门课成绩 System.out.print(“请输入第“ + (i+1) + “门课的成绩: “); score = inpu

8、t.nextInt(); if(score 0) /输入负数 isNegative = true; break; sum = sum + score; /累加求和 循环外的语句,对录入的分数进行判断,如果小于0,标记出错状态,并立即跳出整个for循环,如何使用break语句2-2,如何使用return语句,Int max(int x,int y) If(xy) return x; elseif(xy) return y; else return 0; ,18/35,返回值跳出本函数,执行调用函数之后的语句,提示 1、使用循环进行累加,从1到10 2、判断累加值是否大于20 3、如果大于20,则

9、跳出循环,并打印当前值,小结2,110之间的整数相加,得到累加值大于20的当前数,参考代码,1、通过循环,获得分数大于等于80分的学生人数num 2、判断:如果成绩80,不执行num+,直接进入下一次循环,为什么需要continue语句,4、循环录入Java课的学生成绩,统计分数大于等于80分的学生比例,continue :只能用在循环里 continue 作用:跳过循环体中剩余的语句而执行下一次循环,while() continue; ,继续下一次循环,通常与条件语句一起使用,加速循环,for(int i = 0; i10;i+) 跑400米; if(!口渴) continue; /不喝水,

10、继续跑 接过水壶,喝水; ,示例,什么是continue语句,for (int i = 0; i total; i+) System.out.print(“请输入第“ + (i + 1) + “位学生的成绩: “); score = input.nextInt(); if (score 80) continue; num+; System.out.println(“80分以上的学生人数是: “ + num); double rate = (double) num / total * 100; System.out.println(“80分以上的学生所占的比例为:“ + rate + “%“);

11、,对录入的分数进行判断,如果小于80,跳出本次循环,执行下一次循环,如何使用continue语句,使用场合 break可用于switch结构和循环结构中 continue只能用于循环结构中 return用于方法中 作用(循环结构中) break语句终止某个循环,程序跳转到循环块外的下一条语句。 continue跳出本次循环,进入下一次循环 退出当前方法,返回调用该方法语句处,执行紧跟语句,对比break、continue和return,提示 1、使用循环进行累加,循环的范围是从1至10 2 、判断当前数是否为偶数 3 、如果为奇数跳过,执行下一个循环,如果为偶数,进行累加,小结3,求110之间

12、的所有偶数和,参考代码,指导循环录入会员信息,训练要点: for循环结构 continue语句 需求说明: 循环录入3位会员的信息 会员号合法,显示录入信息; 否则显示录入失败 实现思路: 1、循环录入3位会员信息。 2、会员号无效,利用continue 实现程序跳转 难点指导: continue的使用,讲解需求说明,完成时间:25分钟,练习验证用户登录信息,需求说明: 用户登录验证。验证次数最多3次,完成时间:20分钟,到目前为止所学的循环结构有哪些?,循环结构总结2-1,无论哪一种循环结构,都有4个必不可少的部分:初始部分、循环条件、循环体、迭代部分,需要多次重复执行一个或多个任务的问题考

13、虑使用循环来解决,循环结构总结2-2,区别1:语法 区别2:执行顺序 while 循环:先判断,再执行 do-while循环:先执行,再判断 for循环:先判断,再执行 区别3:适用情况 循环次数确定的情况,通常选用for循环 循环次数不确定的情况,通常选用while和do-while循环,总结,for循环结构如何执行? 在循环中使用什么方式跳出或终止循环? break与continue之间的差别是什么? Return的用法,为什么需要数组2-1,int stu1 = 95; int stu2 = 89; int stu3 = 79; int stu4 = 64; int stu5 = 76;

14、 int stu6 = 88; avg = (stu1+stu2+stu3+stu4+stu5+stu30)/30,30个变量太繁琐,1、Java考试结束后,老师给张浩分配了一项任务,让他计算全班(30人)的平均分,数组,为什么需要数组2-2,列表中的内容是否可以按照如右图所示的方式来存储呢?,可以,这就是数组!,生活案例:购物列表,数组是一个变量,存储相同数据类型的一组数据,什么是数组3-1,声明一个变量就是在内存空间划出一块合适的空间 声明一个数组就是在内存空间划出一串连续的空间,什么是数组3-2,数组的结构和基本要素 标识符:数组的名称,用于区分不同的数组 数组元素:向数组中存放的数据

15、元素下标:对数组元素进行编号 元素类型:数组元素的数据类型,什么是数组3-3,数组只有一个名称,即标识符 元素下标标明了元素在数组中的位置,从0开始 数组中的每个元素都可以通过下标来访问 数组长度固定不变,避免数组越界,使用数组四步走: 1、声明数组 2、分配空间 3、赋值 4、处理数据,int a;,a = new int5;,a 0 = 8;,a 0 = a0 * 10;,a,8,80,a0,如何使用数组,int score1; /Java成绩 int score2 ; /C#成绩 String name; /学生姓名,声明数组: 告诉计算机数据类型是什么,1,数据类型 数组名 ;,数据类

16、型 数组名 ;,声明数组,声明数组时不规定数组长度,score = new int30; avgAge = new int6; name = new String30;,30,分配空间: 告诉计算机分配几个连续的空间,2,数据类型 数组名 = new 数据类型大小 ;,声明数组并分配空间,分配空间,score0 = 89; score1 = 79; score2 = 76; ,赋值:向分配的格子里放数据,30,score0,score1,score2,89,79,76,太麻烦!能不能一起赋值?,3,数组赋值,方法1: 边声明边赋值 方法2:动态地从键盘录入信息并赋值,解决,int score

17、= 89, 79, 76;,Scanner input = new Scanner(System.in); for(int i = 0; i 30; i +) scorei = input.nextInt(); ,int score = new int 89, 79, 76;,数组赋值,不能指定数组长度,int score = 60, 80, 90, 70, 85; double avg; avg = (score0 + score1 + score2 + score3 + score4)/5;,int score = 60, 80, 90, 70, 85; int sum = 0; doub

18、le avg; for(int i = 0; i score.length; i+) sum = sum + scorei; avg = sum / score.length;,成绩单,访问数组成员:使用“标识符下标”,访问成员,数组的length属性,对数据进行处理:计算5位学生的平均分,4,处理数据,小结2,使用数组的步骤是什么? 有一个数列:8,4,2,1,23,344,12 循环输出数列的值 求数列中所有数值的和 猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数,参考代码1,参考代码2,参考代码3,指导显示商品名称,训练要点: 数组的使用 需求说明: 在控制台显示5件特价商品

19、名称 实现思路: 1、创建数组存储商品名称 2、遍历数组输出商品名称,讲解需求说明,完成时间:10分钟,练习购物金额结算,需求说明: 以表格的形式输出5笔购物金额及总金额,完成时间:25分钟,使用java.util.Arrays类 java.util包提供了许多工具类 Arrays类提供操作数组的方法,例排序、查询 Arrays类的sort()方法: 对数组进行升序排列,Arrays.sort(数组名);,数组排序2-1,2、循环录入5位学员成绩,进行升序排列后输出结果,import java.util.*; /导入包 int scores = new int5; /成绩数组 Scanner

20、input = new Scanner(System.in); System.out.println(“请输入5位学员的成绩:“); for(int i = 0; i scores.length; i+) scoresi = input.nextInt(); Arrays.sort(scores); System.out.print(“学员成绩按升序排列:“); for(int i = 0; i scores.length; i+) System.out.print(scoresi + “ “); ,数组中的元素被重新排列,循环录入学生成绩并存储在数组中,循环输出数组中的信息,数组排序2-2,

21、练习字符逆序输出,需求说明: 将 一组乱序的字符进行排序 进行升序和逆序输出,完成时间:15分钟,打擂台,擂台,求最大值3-1,3、从键盘输入本次Java考试五位学生的成绩,求考试成绩最高分,根据打擂台的规则:,max = stu0 ; if (a1max ) max=a1 ; if (a2max ) max=a2 ; if (a3max ) max=a3 ; ,使用循环 来解决,求最大值3-2,/计算成绩最大 max = scores0; for(int i = 1; i max) max = scoresi; System.out.println(“考试成绩最高分为:“ + max);,循

22、环打擂,使用max存储擂主初始值:第一个元素为擂主,求最大值3-3,练习求最低价格,需求说明: 求出4家店的最低手机价格,完成时间:15分钟,基本数据类型的深入理解2-1,4、张浩和李明去年身高都是170cm,今年李明长到了180cm,张浩没有变化,输出去年和今年两人身高 定义两个变量保存身高 修改变量的值 输出变量的值,基本数据类型的深入理解2-2,int heightZhang = 170; int heightLi = heightZhang; System.out.println(“去年-张浩的身高是:“ + heightZhang + “, 李明的身高是:“ + heightLi);

23、 heightLi = 180; System.out.println(“今年-张浩的身高是:“ + heightZhang + “, 李明的身高是:“ + heightLi);,heightZhang,170,170,heightLi,180,不同的变量会分配不同的存储空间,改变一个变量值不会影响另一个变量值,引用数据类型的深入理解3-1,5、张浩和李明去年身高与体重均为170cm和60kg,李明今年身高和体重变为180cm和70kg,张浩无变化。输出两人的身高和体重 采用和上一个示例相同的思路看是否可行,引用数据类型的深入理解3-2,int infoZhang = new int 170,

24、60; int infoLi = infoZhang; infoLi0 = 180; /今年李明的身高变为180 infoLi1 = 70; /今年李明的体重变为70 ,infoZhang,0x2a486c,0x2a486c,infoLi,对引用数据类型,赋值是把原对象的引用传递给另一个引用,两个引用指向同一块内存空间,引用数据类型的深入理解3-3,int infoZhang = new int 170,60; int infoLi = new int2; for(int i = 0; i infoZhang.length; i+) infoLii = infoZhangi; infoLi0

25、= 180; /今年李明的身高变为180 infoLi1 = 70; /今年李明的体重变为70 ,infoZhang,0x2a486c,0x2a679d,infoLi,数组元素有默认值,练习更新会员积分,需求说明: 将原有积分进行备份,然后赠送每位会员500积分,编写程序输出积分情况,完成时间:20分钟,总结,数组有哪些特点? 使用数组的四个步骤? 如何实现数组的排序? 基本数据类型和引用数据类型在内存分配上有什么不同?,无处不在的字符串,生活中的字符串 使用String对象存储字符串 String类位于java.lang包中,具有丰富的方法 计算字符串的长度 连接字符串 比较字符串 提取字符

26、串,频繁使用的字符串,“标准决定水准 ”,“态度决定高度”,“教育改变生活”,String s = “胸怀决定格局“;,String s = new String(“胸怀决定格局“);,字符串长度,计算字符串长度,字符串,长度,调用length() 方法获得,返回字符串中的字符数,调用方法:,字符串标识符.length();,方法原型:,public int length() ,字符串比较,equals()方法比较原理 输入的“Java”和“java”代表同一课程,如何解决? 使用equalsIgnoreCase()方法 结合toUpperCase()或toLowerCase(),字符串 1,

27、字符串 2,检查组成字符串内容的字符是否完全一致,字符串比较,使用equalsIgnoreCase()方法解决,比较时忽略大小写形式,if(favCourse1.equalsIgnoreCase(favCourse2) System.out.println(“最喜欢的课程相同“); else System.out.println(“最喜欢的课程不相同“); ,字符串比较,结合toUpperCase()方法解决,Java,使用 toUpperCase( ) 方法,JAVA,Java,使用 toLowerCase( ) 方法,java,if(favCourse1.toUpperCase().equ

28、als(favCourse2.toUpperCase() System.out.println(“最喜欢的课程相同“); else System.out.println(“最喜欢的课程不相同“); ,字符串连接,方法1:使用“+” 方法2:使用String类的concat()方法,你好,张三!,String s = new String(“你好,“); String name = new String(“张三!“); String sentence = s.concat(name); System.out.println(sentence);,输出结果,A.concat(B): B字符串将被连接到A字符串后面,字符串常用提取方法,常用提取方法举例,返回出现第一个匹配的位置, 如果没有找到字符或字符串,则返回-1,0 1 2 3,位置,字符串常用提取方法,beginindex: 字符串的位置从0开始算;endindex: 字符串的位置从1开始算,基本类型值与字符串,基本类型值与字符串,对象的字符串表示,Object类有方法:String toString(); 作用:一个对象通过调用该方法可以获得对象的字符串表示。,69/,思维总结,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1