版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数组第八章回顾与作业点评回顾与作业点评int i = 0, j = 0;for(;i4) System.out.println(*); continue; System.out.println(*); j+;*输出输出 代码阅读代码阅读写出运行结果写出运行结果? 2/38预习检查预习检查通常什么通常什么情况下使用数组?情况下使用数组?如何定义一个如何定义一个int数组?数组?怎样引用一个数组中的元素?怎样引用一个数组中的元素?提问提问3/38本章任务本章任务统计本次考试平均统计本次考试平均分、最高分分、最高分显示商品名称、求商品最低价格显示商品名称、求商品最低价格购物金额结算购物金额结算实现数
2、组排序实现数组排序字符逆序输出字符逆序输出向有序字符序列中插入字符向有序字符序列中插入字符4/38本章目标本章目标掌握数组的基本用法掌握数组的基本用法 掌握数组的几种掌握数组的几种典型应用典型应用5/38int stu1 = 95;int stu2 = 89;int stu3 = 79;int stu4 = 64;int stu5 = 76;int stu6 = 88;avg = (stu1+stu2+stu3+stu4+stu5+stu30)/30;30个变量个变量30个变量太繁琐个变量太繁琐Java考试结束后,老师给张浩分配了一项考试结束后,老师给张浩分配了一项任务,让他计算全班(任务,让
3、他计算全班(30人)的平均分人)的平均分问题问题为什么需要数组为什么需要数组不利于数据处理不利于数据处理6/38什么是什么是数组数组2-1数组是一个变量,存储相同数据类型的一组数组是一个变量,存储相同数据类型的一组数据数据声明一个变量就是在内存空间划出一块合适的空间声明一个变量就是在内存空间划出一块合适的空间声明一个数组就是在内存空间划出一串连续的空间声明一个数组就是在内存空间划出一串连续的空间7/38什么是什么是数组数组2-2数组基本数组基本要素要素标识符:数组的名称,用于区分不同的数组标识符:数组的名称,用于区分不同的数组数组元素:向数组中存放的数据数组元素:向数组中存放的数据元素下标:对
4、数组元素进行元素下标:对数组元素进行编号,从编号,从0开始,数组开始,数组中的每个元素都可以通过下标来访问中的每个元素都可以通过下标来访问元素类型:数组元素的数据类型元素类型:数组元素的数据类型 数组长度固定不变,避免数组越界数组长度固定不变,避免数组越界8/38小结小结1、使用数组的好处是什么?、使用数组的好处是什么?2、下列哪组数据能存储在数组中?数组的类型、下列哪组数据能存储在数组中?数组的类型是什么?是什么? a) “刘星刘星”,“夏雨夏雨”,“夏雪夏雪”b) 8,98,“c”,23c) 98.1,341.2,34.3数组数组中的所有元素必须属于相同的数据类型中的所有元素必须属于相同的
5、数据类型 String型型 double型型 提问提问9/38使用数组四步走:使用数组四步走:1、声明数组、声明数组2、分配空间、分配空间3、赋值、赋值4、处理数据、处理数据int a; a = new int5; a 0 = 8; a 0 = a0 * 10; a8 80a0如何使用数组如何使用数组10/38int score1; /Java成绩成绩int score2 ; /C#成绩成绩String name; /学生姓名学生姓名声明数组声明数组: : 告诉计算机数据类型是什么告诉计算机数据类型是什么1数据类型数据类型 数组名数组名 ; 数据类型数据类型 数组名数组名 ; 声明数组时不规定
6、数组长度声明数组时不规定数组长度 语法语法声明数组声明数组11/38score = new int30; avgAge = new int6; name = new String30;30分配空间分配空间: : 告诉计算机分配几个连续的空间告诉计算机分配几个连续的空间2数据类型数据类型 数组名数组名 = new 数据类型数据类型大小大小 ; 声明数组并分配空间声明数组并分配空间语法语法分配空间分配空间12/38score0 = 89;score1 = 79;score2 = 76;赋值赋值:向分配的格子里放数据:向分配的格子里放数据30score0score1score2 89 79 76太麻
7、烦!能不能一起赋值?太麻烦!能不能一起赋值?3数组赋值数组赋值13/38方法方法1: 边声明边赋值边声明边赋值方法方法2:动态地从键盘录入信息并赋值:动态地从键盘录入信息并赋值int score = 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;数组赋值数组赋值不能指定数组长度不能指定数组长度 14/386080907085int score = 60, 80, 90, 70,
8、85;double avg;avg = (score0 + score1 + score2 + score3 + score4)/5; int score = 60, 80, 90, 70, 85;int sum = 0;double avg;for(int i = 0; i score.length; i+) sum = sum + scorei;avg = sum / score.length; 成成绩绩单单访问数组成员:使用访问数组成员:使用“标识符标识符下标下标”访问成员访问成员数组的数组的length属性属性对数据进行处理:对数据进行处理:计算计算5 5位学生的平均分位学生的平均分4
9、处理数据处理数据15/38public static void main(String args) int scores = new int5;/成绩数组成绩数组int sum = 0;/成绩总和成绩总和Scanner input = new Scanner(System.in);System.out.println(请输入请输入5位学员的成绩:位学员的成绩:);for(int i = 0; i scores.length; i+)scoresi = input.nextInt();sum = sum + scoresi; /成绩累加成绩累加System.out.println(平均分是:平均
10、分是: + (double)sum/scores.length); 使用数组求平均分使用数组求平均分计算计算全班学员的平均分全班学员的平均分演示示例演示示例1:计算:计算5位学员平均分位学员平均分问题问题16/38public class ErrorDemo1 public static void main(String args) int score = new int ; score0 = 89; score1 = 63; System.out.println(score0); 编译出错,没有写明数组的大小编译出错,没有写明数组的大小代码阅读代码阅读常见错误常见错误3-117/38publ
11、ic class ErrorDemo2 public static void main(String args) int scores = new int2;scores0 = 90;scores1 = 85;scores2 = 65;System.out.println(scores2);编译出错,数组越界编译出错,数组越界代码阅读代码阅读常见错误常见错误3-218/38public static void main(String args) int score = new int5; score = 60, 80, 90, 70, 85; int score2; score2 = 60,
12、80, 90, 70, 85; 常见错误常见错误3-3编译出错,创建数组并赋值的编译出错,创建数组并赋值的方式方式必须必须在一条语句中完成在一条语句中完成代码阅读代码阅读19/38小结小结 使用数组的步骤是什么?使用数组的步骤是什么?有一个数列:有一个数列:8,4,2,1,23,344,12循环输出数列的值循环输出数列的值求数列中所有数值的和求数列中所有数值的和猜数游戏:从键盘中任意输入一个数据,判断数猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数列中是否包含此数 提问提问现场编程现场编程20/38学员操作学员操作显示商品显示商品名称名称2-1训练要点:训练要点:数组的使用数组的使
13、用需求说明:需求说明:在控制台显示在控制台显示5件特价商品名称件特价商品名称指导指导讲解需求说明讲解需求说明21/38学员操作学员操作显示商品名称显示商品名称2-2实现思路:实现思路:1. 创建一个长度为创建一个长度为5的的String数组,存储商品名称。数组,存储商品名称。2. 使用循环输出商品名称使用循环输出商品名称指导指导完成时间:完成时间:10分钟分钟22/38学员操作学员操作购物金额结算购物金额结算 需求说明:需求说明:以表格的形式输出以表格的形式输出5笔购物金额及总金额笔购物金额及总金额 练习练习完成时间完成时间:25分钟分钟提示提示步骤:步骤:1.创建一个长度为创建一个长度为5的
14、的double类型数组,类型数组,存储购物金额。存储购物金额。2.循环输入五笔购物金额,循环输入五笔购物金额,并累加总金额。并累加总金额。3.利用循环输出五笔利用循环输出五笔购物金额,最后输出总金额购物金额,最后输出总金额。23/38共性问题集中讲解共性问题集中讲解常见问题及解决办法常见问题及解决办法代码规范问题代码规范问题调试技巧调试技巧24/38数组排序数组排序2-1使用使用java.util.Arrays类类java.util包提供了许多工具类包提供了许多工具类Arrays类提供操作数组的方法,例排序、查询类提供操作数组的方法,例排序、查询Arrays类的类的sort()方法方法: 对数
15、组进行升序排列对数组进行升序排列Arrays.sort(数组名数组名);循环循环录入录入5位学员成绩,进行升序排列后输位学员成绩,进行升序排列后输出结果出结果问题问题分析分析25/38 import java.util.*; /导入包导入包 int scores = new int5;/成绩数组成绩数组Scanner input = new Scanner(System.in);System.out.println(请输入请输入5位学员的成绩:位学员的成绩:);for(int i = 0; i scores.length; i+)scoresi = input.nextInt();Arrays
16、.sort(scores);System.out.print(学员成绩按升序排列:学员成绩按升序排列:);for(int i = 0; i max ) max=a1 ;if (a2max ) max=a2 ;if (a3max ) max=a3 ;使用使用循环来循环来解决解决分析分析求最大值求最大值3-2根据打擂台的规则根据打擂台的规则28/38 /计算成绩最大计算成绩最大max = scores0;for(int i = 1; i max)max = scoresi;System.out.println(考试成绩最高分为:考试成绩最高分为: + max);循环打擂循环打擂使用使用max存储擂
17、主初始值:第一个元素为擂主存储擂主初始值:第一个元素为擂主求最大值求最大值3-3示例示例 演示示例演示示例3:计算最大值:计算最大值29/38插入算法插入算法有一组学员的成绩有一组学员的成绩99,85,82,63, 60,将它们按升序排列。要增加一个学员的成绩,将它们按升序排列。要增加一个学员的成绩,将它插入成绩序列,并保持升序。将它插入成绩序列,并保持升序。将成绩序列保存在长度为将成绩序列保存在长度为6的数组中的数组中通过通过比较找到插入位置比较找到插入位置将该位置后的元素后移一个位置将该位置后的元素后移一个位置将增加的学员成绩插入将增加的学员成绩插入到该位置到该位置 问题问题分析分析30/
18、38int list = new int6; / 长度为为长度为为6的数组的数组int index = list.length;/保存新增成绩插入位置保存新增成绩插入位置 /省略为数组和变量赋值省略为数组和变量赋值 for(int i = 0; i listi) index = i; break; for(int j = list.length-1; j index; j-) listj = listj-1; listindex = num;/插入数据插入数据插入算法插入算法元素后移元素后移找到新元素的插入位置找到新元素的插入位置新元素放在新元素放在index的位置的位置示例示例演示示例演示示
19、例 4:向数组中插入一个元素:向数组中插入一个元素31/38学员操作学员操作字符逆序输出字符逆序输出需求说明:需求说明:将将 一组乱序的字符进行排序一组乱序的字符进行排序进行升序和逆序输出进行升序和逆序输出 练习练习完成时间:完成时间:15分钟分钟提示提示步骤:步骤:1.创建数组存储原字符序列。创建数组存储原字符序列。2.利用利用Array类的类的sort( )方法对数组进行排序,并循环输出。方法对数组进行排序,并循环输出。3. 从最后一个元素开始,将数组中的元素逆序输出。从最后一个元素开始,将数组中的元素逆序输出。32/38学员操作学员操作向有序序列中插入字符向有序序列中插入字符需求说明:需求说明:在上一个练习的基础上改进:在上一个练习的基础上改进:向上一个练习中得到的升序字符序列中插入一个向上一个练习中得到的升序字符序列中插入一个新的字符,要
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年精准物流输送与商品买卖协议样本版B版
- 2024版房产按揭金融服务合作合同版B版
- 2024招标年度廉政承诺书与投标保证金支付与监管协议3篇
- 2024版WPS协议模板与执行管理指南版B版
- 2024幼儿园幼儿入园责任免除协议3篇
- 2024年玉米加工企业玉米原料进出口合同3篇
- 2024年饭店装修协议核心内容一览版B版
- 2023-2024年度护理员技能大赛-理论练习题库
- 2022年中考化学单元复习【知识清单·必做题】第八单元 金属和金属材料(解析版)
- 2022-2024年江苏中考英语试题汇编:句子运用(完成句子)(教师)
- 2024年湖南省高中学业水平合格考物理试卷真题(含答案详解)
- 机动车检测站质量手册(根据补充技术要求修订)
- 2024年(学习强国)思想政治理论知识考试题库与答案
- 上海上海市医疗急救中心招聘笔试历年典型考题及考点附答案解析
- 《大数据分析技术》课程标准
- 2024年河南农业职业学院单招职业适应性测试题库及参考答案
- 期末考试-公共财政概论-章节习题
- AED急救知识课件
- 高中物理课件:Tracker软件在高中物理实验教学中的应用-
- 肩痹(肩袖损伤)中医临床路径及入院标准2020版
- 跟踪审计服务 投标方案(技术方案)
评论
0/150
提交评论