Java6第四章-数组.ppt

上传人:max****ui 文档编号:6358110 上传时间:2020-02-23 格式:PPT 页数:33 大小:525KB
返回 下载 相关 举报
Java6第四章-数组.ppt_第1页
第1页 / 共33页
Java6第四章-数组.ppt_第2页
第2页 / 共33页
Java6第四章-数组.ppt_第3页
第3页 / 共33页
点击查看更多>>
资源描述
第四章 数组和常用算法 回顾与作业点评 循环语句FORBREAKCONTINUE嵌套循环JAVAdebug技术 本章任务 掌握一维数组掌握常用算法掌握多维数组for循环与数组 知识要点 一维数组常用算法多维数组for循环与数组 4 1一维数组 4 1 1为什么要用数组 intresult1 intresult2 intresult29 intresult30 过程繁琐变量定义太多操作变量不方便 在程序中存储30个学生的学习成绩 一维数组 字画类 格子提供了存储空间每一类别都有一个名字每件物品都有个标号 一维数组 int 与此类似 在JAVA数据存放中 也可以分类存放多个数据 这在编程中通过数组来完成 可以提高数据的查找效率 一维数组 4 1 2Java中的数组的概念Java中的数组就是存放一些相同数据类型元素的集合 一个数组就是一个用来存储一系列变量的命名区域 因此 可以使用数组组织变量 result 数组名 result 0 result 29 数组下标从0开始 数组中每个变量用 数组名 下标 标示 下标 4 1 3如何使用数组1 声明数组如 int a 类型 数组名或者类型数组名 类型说明符 说明数组的类型 数组名 用标识符命名 数组的声明和定义 一维数组的定义数组名的命名规则与变量名的命名规则相同 是数组的标志 不能用圆括号或者其他符号代替在Java语言中 不能在声明数组时指定数组的长度 而应该在定义时指定 例如 intx 5 编译时将出错int x newint 5 正确 类型 数组名 new类型 常量表达式 int r newint 5 r 0 r 1 r 2 r 3 r 4 数组的元素的个数 数组的下标从0变化到常量达式的值减1 2 分配数组内存空间a newint 5 3 给数组元素赋值a 0 8 1 边声明边赋值int score 89 79 76 2 动态从键盘输入信息并赋值score i input nextInt 4 处理数据a 0 a 0 10 publicclassArray1 求5个元素的数组的和 数组的使用 1 告诉计算机声明一个数组并制定数组中装的数据类型2 告诉计算机要开辟几个空间来装数据3 给开辟的每一个空间赋值4 使用数据 求和 publicstaticvoidmain String args int a a newint 5 a 0 8 叫第一个元素 也可以叫第0号元素 a 1 9 a 2 10 a 3 11 a 4 10 intsum a 0 a 1 a 2 a 3 a 4 System out println 和为 sum publicclassArray2 数组的使用 声明数组arr3再赋值初始化arr3 4 使用 publicstaticvoidmain String args String arr3 arr3 newString I like C int a 8 9 10 11 10 a newint 5 a 0 8 叫第一个元素 也可以叫第0号元素 a 1 9 a 2 10 a 3 11 a 4 10 intsum a 0 a 1 a 2 a 3 a 4 System out println 和为 sum 声明数组后再赋值初始化 publicclassArray3 数组的使用 1 2 3声明的同时并开辟空间并赋予初值 4 使用 publicstaticvoidmain String args int a newint 8 9 10 11 10 赋几个值就开辟几个空间 int a 8 9 10 11 10 a newint 5 a 0 8 叫第一个元素 也可以叫第0号元素 a 1 9 a 2 10 a 3 11 a 4 10 intsum a 0 a 1 a 2 a 3 a 4 System out println 和为 sum 前三步合成一步来进行数组的声明 开辟空间并赋初值 importjava util publicclassArray4 数组的使用 1 声明一个数组告诉计算机数组中装的数据类型 并告诉计算机开辟几个空间 2 通过循环输入也就是动态输入给数组中每一个元素赋值 相当于我们的Array 3 使用 publicstaticvoidmain String args int a newint 5 Scannerinput newScanner System in System out println 请您输入5个整型数据 for inti 0 i 5 i a i input nextInt 给数组中的元素动态赋予值 int a 8 9 10 11 10 a newint 5 a 0 8 叫第一个元素 也可以叫第0号元素 a 1 9 a 2 10 a 3 11 a 4 10 intsum a 0 a 1 a 2 a 3 a 4 System out println 和为 sum 动态从键盘输入信息并给数组赋值 publicclassArray5 循环的动态输出数组中的元素 publicstaticvoidmain String args inta 8 9 10 11 10 for inti 0 i可以计算出数组中所有元素的个数System out println 数组中第 i 号元素的名为 a i 值为 a i 动态输出数组元素 4 14数组常见错误1 没有明确指明数组的大小int score newint 2 数组越界int score newint 2 score 2 3 数组初始化错误int score newint 5 score 60 80 90 70 85 4 没给数组元素赋值int score newint 3 System out println score 1 4 2常用算法1 求平均值 publicclassArray6 思路 1 首先定义一个数组并装入个值 2 定义一个装和的变量sum 定义一个装平均数的变量avg 3 通过循环累加求和 4 通过和除以个数等于平均数 publicstaticvoidmain String args inta 20 30 10 20 20 20 40 0 doublesum 0 doubleavg 0 for inti 0 i a length i sum sum a i avg sum a length System out println 和为 sum 平均数为 avg importjava util publicclassArray7 动态给数组赋值并计算总数和平均数 publicstaticvoidmain String args inta newint 10 Scannerinput newScanner System in System out println 请您输入10个学员的成绩 doublesum 0 专门装和doubleavg 0 装平均数for inti 0 i a length i a i input nextInt sum sum a i System out println 您输入的10个学员的成绩总成绩为 sum System out println 平均成绩为 sum a length 2 求最大值 68 68 50 96 85 79 90 96 68 50 95 85 79 90 96 2 求最大值 publicclassMax 求一列数中最大值和最小值 publicstaticvoidmain String args inta 88 99 33 通过循环扫描数组intmax a 0 max 88 for inti 0 imax 88 8899 8833 88max a i max 33 System out println 本列数据中最大值是 max 3求最小值 publicclassMin 求一列数中最大值和最小值 publicstaticvoidmain String args inta 88 99 33 通过循环扫描数组intmin a 0 min 88 for inti 0 i a length i if a i min 88 8899 8833 88min a i min 33 System out println 本列数据中最小值是 min 4 2 2数组排序Arrays sort importjava util publicclassArray9Sort deprecated通过Arrays sort 数组名 实现数据排序 publicstaticvoidmain String args Scannerinput newScanner System in System out print 请您输入五位学员的成绩 n inta newint 5 for inti 0 i a length i System out print 请您输入第 i 1 位学员的成绩 t a i input nextInt 循环输出数据System out println 您输入的分数的数据排序前为 for inti 0 i a length i System out print a i t Arrays sort a 按升序对数组a排序 循环输出数据System out println n您输入的分数的数据排序后为 for inti 0 i a length i System out print a i t 4 2 3数组复制1用for循环来完成 publicclassArrayCopy publicstaticvoidmain String args 变量的复制与赋值inta 8 intb b a System out println b int c 89 98 68 int d d c System out println d 数组的复制int m 9 7 5 90 87 56 45 int n newint m length int n newint 7 System out println m数组中对应的每一个元素的输出默认之前为 for inti 0 i m length i System out print m i t 复制前数组n为System out println nn数组中对应的每一个元素的输出默认之前为 for inti 0 i n length i System out print n i t 将m数组中的每一个元素赋值到n数组中对应的每一个元素中for inti 0 i m length i 复制 数组n i m i n 0 m 0 n 1 m 1 n中的值循环输出 复制后n数组为System out println n将m数组中的每一个元素赋值给n数组中对应的每一个元素后n数组的输出为 for inti 0 i n length i System out print n i t publicclassArrayCopySystem param使用System类别所提供的arraycopy 方法实现数组复制 publicstaticvoidmain String args int arr1 1 2 3 4 5 int arr2 newint 5 System out println 数组arr1中数据没有复制到数组arr2中时arr2中元素为 for inti 0 i arr2 length i System out print arr2 i System arraycopy arr1 0 arr2 0 arr1 length System out println 回车换行 将第一个数组从0位置开始的所有元素复制到第二个数组从0位置开始的所有元素中 System out println 数组arr1中数据复制到数组arr2中后arr2中元素为 for inti 0 i arr2 length i System out print arr2 i System out println 2用System arraycopy 复制数组 4 3多维数组 可看做数组的数组 数组的元素本身就是数组 4 3 1二重循环 在循环体中再嵌入一层循环 importjava util publicclassForFor 某次程序大赛 3个班级各4名学员参赛 计算每个班参赛学员的平均分 分析 共3个班级 循环3次计算每个班的平均分每班4名学员 循环4次累加总分 publicstaticvoidmain String args Scannerinput newScanner System in 外层循环要循环三次for inti 0 i 3 i 控制三个班级intsum 0 内层循环要计算每个班级的学员的总分System out println 请您输入第 i 1 个班级的四个学员的分数 for intj 0 j 4 j 控制每一个班级的四个学员的总分System out println 请您输入第 j 1 个学员的成绩 intscore input nextInt sum sum score doubleavg sum 4 System out println 第 i 1 个班级的平均分是 avg System out println 计算完毕 publicclassSanJiao publicstaticvoidmain String args for inti 0 i 10 i 内层循环的结束条件与外层循环变量有关for intj 0 j i j System out print System out println 换行 4 3 2流程控制语句continue importjava util publicclassTongJiFor publicstaticvoidmain String argus Scannerinput newScanner System in intcount 0 for inti 0 i85numbers count System out println tongjiends 4 3 2流程控制语句2 break importjava util publicclassGouYiFu publicstaticvoidmain String argus Scannerinput newScanner System in intcount 0 inti 0 for i 0 i 5 i System out println welcome i 1 shop for intj 0 j 3 j System out println douwannaleave y n Stringchoice input next if choice equals y break System out println buyaclothes count S System out println leaveshop System out println uin i buy count clothes 4 3 3二维数组使用名称和两个索引来制定存取数组中的元素 int arr newint 2 3 Arr 0 Arr 1 arr Arr 0 0 Arr 0 1 Arr 0 2 Arr 1 0 Arr 1 1 Arr 1 2 4 3 3二维数组可先分解为两个一维数组 然后再分别输出数据 publicclassArraya publicstaticvoidmain String argus int arr 1 2 3 4 5 6 int foo arr 0 for inti 0 i foo length i System out print foo i System out println foo arr 1 for inti 0 i foo length i System out print foo i System out println 4 3 3二维数组 4 4经典算法1 冒泡排序 publicclassBubbleSort publicstaticvoidmain String args int values 3 1 6 12 9 0 7 4 5 sort values for inti 0 ivalues j 1 temp values j values j values j 1 values j 1 temp 2 选择排序classSelect publicstaticvoidmain String args int as 6 3 1 8 90 5 22 sorts as for inti as System out println i publicstaticvoidsorts int a for inti 0 ia j k j inttemp 0 if i k temp a i a i a k a k temp 4 5增强for循环 intarr 1 4 5 8 0 for inttemp arr System out println temp int arr 1 2 3 4 5 6 7 8 9 for int row arr for inte row System out println e t
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!