Java6第四章-数组.ppt_第1页
Java6第四章-数组.ppt_第2页
Java6第四章-数组.ppt_第3页
Java6第四章-数组.ppt_第4页
Java6第四章-数组.ppt_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章,数组和常用算法,回顾与作业点评,循环语句FOR BREAK CONTINUE 嵌套循环 JAVA debug技术,本章任务,掌握一维数组 掌握常用算法 掌握多维数组 for循环与数组,知识要点,一维数组 常用算法 多维数组 for循环与数组,4.1 一维数组,4.1.1为什么要用数组,int result1; int result2; int result29; int result30;,过程繁琐 变量定义太多 操作变量不方便,在程序中存储30个学生的学习成绩,一维数组,字画类,格子提供了存储空间 每一类别都有一个名字 每件物品都有个标号,一维数组,int,与此类似,在JAVA数据存放中,也可以分类存放多个数据,这在编程中通过数组来完成,可以提高数据的查找效率。,一维数组,4.1.2Java中的数组的概念 Java中的数组就是存放一些相同数据类型元素的集合,一个数组就是一个用来存储一系列变量的命名区域,因此,可以使用数组组织变量。,result,数组名,result0,result29,数组下标从0开始。 数组中每个变量用“数组名下标”标示,下标,4.1.3 如何使用数组 1.声明数组 如:int a;,类型 数组名 或者 类型 数组名 ;,类型说明符,说明数组的类型,数组名,用标识符命名,数组的声明和定义,一维数组的定义 数组名的命名规则与变量名的命名规则相同 “ ”是数组的标志,不能用圆括号或者其他符号代替 在Java语言中,不能在声明数组时指定数组的长度,而应该在定义时指定,例如: int x5; /编译时将出错 int x=new int5; /正确,类型 数组名=new 类型 常量表达式;,int r=new int5;,r0,r1,r2,r3,r4,数组的元素的个数,数组的下标从0变化到常量达式的值减1,2.分配数组内存空间 a=new int5; 3.给数组元素赋值 a0=8; 1)边声明边赋值 int score=89,79,76; 2)动态从键盘输入信息并赋值 scorei=input.nextInt(); 4.处理数据 a0=a0*10;,public class Array1 /*求5个元素的数组的和 * 数组的使用: 1.告诉计算机声明一个数组并制定数组中装的数据类型 2.告诉计算机要开辟几个空间来装数据 3.给开辟的每一个空间赋值 4.使用数据,求和 */ public static void main(String args) int a; a = new int5; a0 = 8; ;/ 叫第一个元素,也可以叫第0号元素。 a1 = 9; a2 = 10; a3 = 11; a4 = 10; int sum = a0 + a1 + a2 + a3 + a4; System.out.println(“和为:“ + sum); ,public class Array2 /* * 数组的使用: *声明数组arr3 再赋值初始化arr3 * 4.使用 */ public static void main(String args) String arr3; arr3 = new String “I“, “like“, “C# “ ; int a = 8, 9, 10, 11, 10 ; / a=new int5; / a0=8; ;/叫第一个元素,也可以叫第0号元素。 / a1=9; / a2=10; / a3=11; / a4=10; int sum = a0 + a1 + a2 + a3 + a4; System.out.println(“和为:“ + sum); ,声明数组后再赋值初始化,public class Array3 /* * 数组的使用: * 1,2,3声明的同时并开辟空间并赋予初值 * 4.使用 */ public static void main(String args) int a = new int 8, 9, 10, 11, 10 ;/ 赋几个值就开辟几个空间 / int a=8,9,10,11,10; / a=new int5; / a0=8; ;/叫第一个元素,也可以叫第0号元素。 / a1=9; / a2=10; / a3=11; / a4=10; int sum = a0 + a1 + a2 + a3 + a4; System.out.println(“和为:“ + sum); ,前三步合成一步来进行数组的声明,开辟空间并赋初值。,import java.util.*; public class Array4 /* * 数组的使用: * 1.声明一个数组告诉计算机数组中装的数据类型,并告诉计算机开辟几个空间 * 2.通过循环输入也就是动态输入给数组中每一个元素赋值,相当于我们的Array * 3.使用 */ public static void main(String args) int a = new int5; Scanner input = new Scanner(System.in); System.out.println(“请您输入5个整型数据:“); for (int i = 0; i 5; i+) ai = input.nextInt();/ 给数组中的元素动态赋予值。 / int a=8,9,10,11,10; / a=new int5; / a0=8; ;/叫第一个元素,也可以叫第0号元素。 / a1=9; / a2=10; / a3=11; / a4=10; int sum = a0 + a1 + a2 + a3 + a4; System.out.println(“和为:“ + sum); ,动态从键盘输入信息并给数组赋值,public class Array5 /* * 循环的动态输出数组中的元素 */ public static void main(String args) int a = 8, 9, 10, 11, 10 ; for (int i = 0; i 可以计算出数组中所有元素的个数 System.out.println(“数组中第“ + i + “号元素的名为:a“ + i + “值为“ + ai); ,动态输出数组元素:,4.14数组常见错误 1.没有明确指明数组的大小 int score=new int; 2.数组越界 int score=new int2; score2; 3.数组初始化错误 int score=new int5; score=60,80,90,70,85; 4.没给数组元素赋值 int score=new int3; System.out.println(score1);,4.2常用算法 1.求平均值,public class Array6 /* *思路: *1.首先定义一个数组并装入个值 *2.定义一个装和的变量sum,定义一个装平均数的变量avg *3.通过循环累加求和 *4.通过和除以个数等于平均数 */ public static void main(String args) int a=20,30,10,20,20,20,40,0; double sum=0; double avg=0; for(int i=0;ia.length;i+) sum=sum+ai; avg=sum/a.length; System.out.println(“和为:“+sum+“平均数为:“+avg); ,import java.util.*; public class Array7 /* * 动态给数组赋值并计算总数和平均数 */ public static void main(String args) int a = new int10; Scanner input = new Scanner(System.in); System.out.println(“请您输入10个学员的成绩:“); double sum = 0;/ 专门装和 double avg = 0;/ 装平均数 for (int i = 0; i a.length; i+) ai = input.nextInt(); sum = sum + ai; 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.求最大值,public class Max /* * 求一列数中最大值和最小值 */ public static void main(String args) int a = 88, 99, 33 ; / 通过循环扫描数组 int max = a0;/ max=88; for (int i = 0; i max) / 8888 9988 3388 max = ai;/ max=33; System.out.println(“本列数据中最大值是:“ + max); ,3求最小值,public class Min /* * 求一列数中最大值和最小值 */ public static void main(String args) int a = 88, 99, 33 ; / 通过循环扫描数组 int min = a0;/ min=88; for (int i = 0; i a.length; i+) if (ai min) / 8888 9988 3388 min = ai;/ min=33; System.out.println(“本列数据中最小值是:“ + min); ,4.2.2数组排序 Arrays.sort();,import java.util.*; public class Array9Sort /* * deprecated 通过Arrays.sort(数组名);实现数据排序。 */ public static void main(String args) Scanner input = new Scanner(System.in); System.out.print(“请您输入五位学员的成绩:n“); int a = new int5; for (int i = 0; i a.length; i+) System.out.print(“请您输入第“ + (i + 1) + “位学员的成绩t“); ai = input.nextInt(); / 循环输出数据 System.out.println(“您输入的分数的数据排序前为:“); for (int i = 0; i a.length; i+) System.out.print(ai + “t“); Arrays.sort(a); / 按升序对数组a排序 / 循环输出数据 System.out.println(“n您输入的分数的数据排序后为:“); for (int i = 0; i a.length; i+) System.out.print(ai + “t“); ,4.2.3数组复制 1 用for循环来完成,public class ArrayCopy public static void main(String args) /变量的复制与赋值 int a=8; int b; 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=new intm.length;/int n=new int7; System.out.println(“m数组中对应的每一个元素的输出默认之前为:“); for(int i=0;im.length;i+) System.out.print(mi+“t“); /-复制前数组n为 System.out.println(“nn数组中对应的每一个元素的输出默认之前为:“); for(int i=0;in.length;i+) System.out.print(ni+“t“); /将m数组中的每一个元素赋值到n数组中对应的每一个元素中 for(int i=0;im.length;i+)/-复制-数组 ni=mi; /n0=m0; n1=m1; /n中的值循环输出-复制后n数组为 System.out.println(“n将m数组中的每一个元素赋值给n数组中对应的每一个元素后n数组的输出为:“); for(int i=0;in.length;i+) System.out.print(ni+“t“); ,public class ArrayCopySystem /* * param 使用System类别所提供的arraycopy * ()方法实现数组复制。 */ public static void main(String args) int arr1 = 1, 2, 3, 4, 5 ; int arr2 = new int5; System.out.println(“数组arr1中数据没有复制到数组arr2中时 arr2中元素为:“); for (int i = 0; i arr2.length; i+) System.out.print(arr2i + “ “); System.arraycopy(arr1, 0, arr2, 0, arr1.length); System.out.println();/回车换行 / 将第一个数组从0位置开始的所有元素复制到第二个数组从0位置开始的所有元素中。 System.out.println(“数组arr1中数据复制到数组arr2中后 arr2中元素为:“); for (int i = 0; i arr2.length; i+) System.out.print(arr2i + “ “); System.out.println(); ,2用System.arraycopy()复制数组,4.3多维数组:可看做数组的数组,数组的元素本 身就是数组。 4.3.1二重循环:在循环体中再嵌入一层循环。,import java.util.*; public class ForFor /* * 某次程序大赛,3个班级各4名学员参赛,计算每个班参赛学员的平均分 * 分析: 共3个班级,循环3次计算每个班的平均分 每班4名学员,循环4次累加总分 */ public static void main(String args) Scanner input = new Scanner(System.in); / 外层循环要循环三次 for (int i = 0; i 3; i+) / 控制三个班级 int sum = 0;/ 内层循环要计算每个班级的学员的总分 System.out.println(“请您输入第“ + (i + 1) + “个班级的四个学员的分数:“); for (int j = 0; j 4; j+) / 控制每一个班级的四个学员的总分 System.out.println(“请您输入第“ + (j + 1) + “个学员的成绩:“); int score = input.nextInt(); sum = sum + score; double avg = sum / 4; System.out.println(“第“ + (i + 1) + “个班级的平均分是:“ + avg); System.out.println(“计算完毕!“); ,* * * * * * * * *,public class SanJiao public static void main(String args) for(int i=0;i10;i+) /内层循环的结束条件与外层循环变量有关 for(int j=0;ji;j+) System.out.print(“*“); System.out.println(); /换行 ,4.3.2流程控制语句 continue,import java.util.*; public class TongJiFor public static void main(String argus) Scanner input =new Scanner(System.in); int count=0; for(int i=0;i85 numbers=“+count); System.out.println(“tongji ends!“); ,4.3.2流程控制语句 2.break,import java.util.*; public class GouYiFu public static void main(String argus) Scanner input =new Scanner(System.in); int count=0; int i=0; for(i=0;i5;i+) System.out.println(“welcome “+(i+1) +“ shop!“); for(int j=0;j3;j+) System.out.println(“do u wanna leave? y/n“); String choice=input.next(); if(choice.equals(“y“) break; System.out.println(“ buy a clothes!“); count+;S System.out.println(“leave shop!“); System.out.println(“u in “+i + “ buy “+count+ “ clothes!“); ,4.3.3二维数组 使用名称和两个索引来制定存取数组中的元素。 int arr=new int23;,Arr0,Arr1,arr,Arr00 Arr01 Arr02,Arr10 Arr11 Arr12,4.3.3二维数组可先分解为两个一维数组,然后再分别输出数据,public class Arraya public static

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论