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

下载本文档

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

文档简介

第四章,数组和常用算法,回顾与作业点评,循环语句FORBREAKCONTINUE嵌套循环JAVAdebug技术,本章任务,掌握一维数组掌握常用算法掌握多维数组for循环与数组,知识要点,一维数组常用算法多维数组for循环与数组,4.1一维数组,4.1.1为什么要用数组,intresult1;intresult2;.intresult29;intresult30;,过程繁琐变量定义太多操作变量不方便,在程序中存储30个学生的学习成绩,一维数组,字画类,格子提供了存储空间每一类别都有一个名字每件物品都有个标号,一维数组,int,与此类似,在JAVA数据存放中,也可以分类存放多个数据,这在编程中通过数组来完成,可以提高数据的查找效率。,一维数组,4.1.2Java中的数组的概念Java中的数组就是存放一些相同数据类型元素的集合,一个数组就是一个用来存储一系列变量的命名区域,因此,可以使用数组组织变量。,result,数组名,result0,result29,数组下标从0开始。数组中每个变量用“数组名下标”标示,下标,4.1.3如何使用数组1.声明数组如:inta;,类型数组名或者类型数组名;,类型说明符,说明数组的类型,数组名,用标识符命名,数组的声明和定义,一维数组的定义数组名的命名规则与变量名的命名规则相同“”是数组的标志,不能用圆括号或者其他符号代替在Java语言中,不能在声明数组时指定数组的长度,而应该在定义时指定,例如:intx5;/编译时将出错intx=newint5;/正确,类型数组名=new类型常量表达式;,intr=newint5;,r0,r1,r2,r3,r4,数组的元素的个数,数组的下标从0变化到常量达式的值减1,2.分配数组内存空间a=newint5;3.给数组元素赋值a0=8;1)边声明边赋值intscore=89,79,76;2)动态从键盘输入信息并赋值scorei=input.nextInt();4.处理数据a0=a0*10;,publicclassArray1/*求5个元素的数组的和*数组的使用:1.告诉计算机声明一个数组并制定数组中装的数据类型2.告诉计算机要开辟几个空间来装数据3.给开辟的每一个空间赋值4.使用数据,求和*/publicstaticvoidmain(Stringargs)inta;a=newint5;a0=8;/叫第一个元素,也可以叫第0号元素。a1=9;a2=10;a3=11;a4=10;intsum=a0+a1+a2+a3+a4;System.out.println(和为:+sum);,publicclassArray2/*数组的使用:*声明数组arr3再赋值初始化arr3*4.使用*/publicstaticvoidmain(Stringargs)Stringarr3;arr3=newStringI,like,C#;inta=8,9,10,11,10;/a=newint5;/a0=8;/叫第一个元素,也可以叫第0号元素。/a1=9;/a2=10;/a3=11;/a4=10;intsum=a0+a1+a2+a3+a4;System.out.println(和为:+sum);,声明数组后再赋值初始化,publicclassArray3/*数组的使用:*1,2,3声明的同时并开辟空间并赋予初值*4.使用*/publicstaticvoidmain(Stringargs)inta=newint8,9,10,11,10;/赋几个值就开辟几个空间/inta=8,9,10,11,10;/a=newint5;/a0=8;/叫第一个元素,也可以叫第0号元素。/a1=9;/a2=10;/a3=11;/a4=10;intsum=a0+a1+a2+a3+a4;System.out.println(和为:+sum);,前三步合成一步来进行数组的声明,开辟空间并赋初值。,importjava.util.*;publicclassArray4/*数组的使用:*1.声明一个数组告诉计算机数组中装的数据类型,并告诉计算机开辟几个空间*2.通过循环输入也就是动态输入给数组中每一个元素赋值,相当于我们的Array*3.使用*/publicstaticvoidmain(Stringargs)inta=newint5;Scannerinput=newScanner(System.in);System.out.println(请您输入5个整型数据:);for(inti=0;i5;i+)ai=input.nextInt();/给数组中的元素动态赋予值。/inta=8,9,10,11,10;/a=newint5;/a0=8;/叫第一个元素,也可以叫第0号元素。/a1=9;/a2=10;/a3=11;/a4=10;intsum=a0+a1+a2+a3+a4;System.out.println(和为:+sum);,动态从键盘输入信息并给数组赋值,publicclassArray5/*循环的动态输出数组中的元素*/publicstaticvoidmain(Stringargs)inta=8,9,10,11,10;for(inti=0;i可以计算出数组中所有元素的个数System.out.println(数组中第+i+号元素的名为:a+i+值为+ai);,动态输出数组元素:,4.14数组常见错误1.没有明确指明数组的大小intscore=newint;2.数组越界intscore=newint2;score2;3.数组初始化错误intscore=newint5;score=60,80,90,70,85;4.没给数组元素赋值intscore=newint3;System.out.println(score1);,4.2常用算法1.求平均值,publicclassArray6/*思路:*1.首先定义一个数组并装入个值*2.定义一个装和的变量sum,定义一个装平均数的变量avg*3.通过循环累加求和*4.通过和除以个数等于平均数*/publicstaticvoidmain(Stringargs)inta=20,30,10,20,20,20,40,0;doublesum=0;doubleavg=0;for(inti=0;ia.length;i+)sum=sum+ai;avg=sum/a.length;System.out.println(和为:+sum+平均数为:+avg);,importjava.util.*;publicclassArray7/*动态给数组赋值并计算总数和平均数*/publicstaticvoidmain(Stringargs)inta=newint10;Scannerinput=newScanner(System.in);System.out.println(请您输入10个学员的成绩:);doublesum=0;/专门装和doubleavg=0;/装平均数for(inti=0;ia.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.求最大值,publicclassMax/*求一列数中最大值和最小值*/publicstaticvoidmain(Stringargs)inta=88,99,33;/通过循环扫描数组intmax=a0;/max=88;for(inti=0;imax)/888899883388max=ai;/max=33;System.out.println(本列数据中最大值是:+max);,3求最小值,publicclassMin/*求一列数中最大值和最小值*/publicstaticvoidmain(Stringargs)inta=88,99,33;/通过循环扫描数组intmin=a0;/min=88;for(inti=0;ia.length;i+)if(aimin)/888899883388min=ai;/min=33;System.out.println(本列数据中最小值是:+min);,4.2.2数组排序Arrays.sort();,importjava.util.*;publicclassArray9Sort/*deprecated通过Arrays.sort(数组名);实现数据排序。*/publicstaticvoidmain(Stringargs)Scannerinput=newScanner(System.in);System.out.print(请您输入五位学员的成绩:n);inta=newint5;for(inti=0;ia.length;i+)System.out.print(请您输入第+(i+1)+位学员的成绩t);ai=input.nextInt();/循环输出数据System.out.println(您输入的分数的数据排序前为:);for(inti=0;ia.length;i+)System.out.print(ai+t);Arrays.sort(a);/按升序对数组a排序/循环输出数据System.out.println(n您输入的分数的数据排序后为:);for(inti=0;ia.length;i+)System.out.print(ai+t);,4.2.3数组复制1用for循环来完成,publicclassArrayCopypublicstaticvoidmain(Stringargs)/变量的复制与赋值inta=8;intb;b=a;System.out.println(b);intc=89,98,68;intd;d=c;System.out.println(d);/数组的复制intm=9,7,5,90,87,56,45;intn=newintm.length;/intn=newint7;System.out.println(m数组中对应的每一个元素的输出默认之前为:);for(inti=0;im.length;i+)System.out.print(mi+t);/-复制前数组n为System.out.println(nn数组中对应的每一个元素的输出默认之前为:);for(inti=0;in.length;i+)System.out.print(ni+t);/将m数组中的每一个元素赋值到n数组中对应的每一个元素中for(inti=0;im.length;i+)/-复制-数组ni=mi;/n0=m0;n1=m1;./n中的值循环输出-复制后n数组为System.out.println(n将m数组中的每一个元素赋值给n数组中对应的每一个元素后n数组的输出为:);for(inti=0;in.length;i+)System.out.print(ni+t);,publicclassArrayCopySystem/*param使用System类别所提供的arraycopy*()方法实现数组复制。*/publicstaticvoidmain(Stringargs)intarr1=1,2,3,4,5;intarr2=newint5;System.out.println(数组arr1中数据没有复制到数组arr2中时arr2中元素为:);for(inti=0;iarr2.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(inti=0;iarr2.length;i+)System.out.print(arr2i+);System.out.println();,2用System.arraycopy()复制数组,4.3多维数组:可看做数组的数组,数组的元素本身就是数组。4.3.1二重循环:在循环体中再嵌入一层循环。,importjava.util.*;publicclassForFor/*某次程序大赛,3个班级各4名学员参赛,计算每个班参赛学员的平均分*分析:共3个班级,循环3次计算每个班的平均分每班4名学员,循环4次累加总分*/publicstaticvoidmain(Stringargs)Scannerinput=newScanner(System.in);/外层循环要循环三次for(inti=0;i3;i+)/控制三个班级intsum=0;/内层循环要计算每个班级的学员的总分System.out.println(请您输入第+(i+1)+个班级的四个学员的分数:);for(intj=0;j4;j+)/控制每一个班级的四个学员的总分System.out.println(请您输入第+(j+1)+个学员的成绩:);intscore=input.nextInt();sum=sum+score;doubleavg=sum/4;System.out.println(第+(i+1)+个班级的平均分是:+avg);System.out.println(计算完毕!);,*,publicclassSanJiaopublicstaticvoidmain(Stringargs)for(inti=0;i10;i+)/内层循环的结束条件与外层循环变量有关for(intj=0;ji;j+)System.out.print(*);System.out.println();/换行,4.3.2流程控制语句continue,importjava.util.*;publicclassTongJiForpublicstaticvoidmain(Stringargus)Scannerinput=newScanner(System.in);intcount=0;for(inti=0;i85numbers=+count);System.out.println(tongjiends!);,4.3.2流程控制语句2.break,importjava.util.*;publicclassGouYiFupublicstaticvoidmain(Stringargus)Scannerinput=newScanner(System.in);intcount=0;inti=0;for(i=0;i5;i+)System.out.println(welcome+(i+1)+shop!);for(intj=0;j3;j+)System.out.println(douwannaleave?y/n);Stringchoice=input.next();if(choice.equals(y)break;System.out.println(buyaclothes!);count+;SSystem.out.println(leaveshop!);System.out.println(uin+i+buy+count+clothes!);,4.3.3二维数组使用名称和两个索引来制定存取数组中的元素。intarr=newint23;,Arr0,Arr1,arr,Arr00Arr01Arr02,Arr10Arr11Arr12,4.3.3二维数组可先分解为两个一维数组,然后再分别输出数据,publicclassArrayapublicstaticvoidmain(Strin

温馨提示

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

评论

0/150

提交评论