资源描述:
《java语言3java数组、语句和函数》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章Java数组、语句和函数数组的定义—数组是很重要的数据结构,由同一类型相关的数据结构组成,是静态实体,有链表,队列,堆栈等数据结构,Java还提出了数组的类vector。—在Java中,数组是对象,数组类型是引用类型,数组变量实际上是对数组的引用。—Java数组是动态分配的,并在分配过程中记录数组的长度。数组下标从0开始。数组在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配
2、的内存空间,该内存空间可以立即被另作他用。堆内存用来存放由new创建的对象和数组。在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。栈中数组或对象的引用变量,取值等于数组或对象在堆内存中的首地址。可在程序中使用栈中的引用变量来访问堆中的数组或对象。数组堆内存和栈内存int[]x;x=newint[100];x=null;的内存状态变化情况数组创建数组intia[]={1,2,3,4};int[]ia=newint[]{3,4,5};inta[5];//声明数组时,不能指定其长度,编译时将出错。数组大小仅当
3、对它赋值(或分配)时才能确定正确的方式如:inta[]=newint[5];使用数组时要注意的问题空指针异常数组越界异常:访问超出数组边界的元素如何得到数组长度myArray.length应用实例:书P50数组的数组如何理解多维数组,类似我们的棋盘。java中并没有真正的多维数组,只有数组的数组,Java中数组的数组不一定是规则矩阵形式。定义一个数组的数组int[][]xx;xx=newint[3][];xx[0]=newint[3];xx[1]=newint[2];数组的数组数组的数组中元素的引用方式,如:x[
4、1][2]。规则矩阵数组可以在一条语句中产生,如:intxx[][]=newint[2][3];数组的数组的静态初始化,如:int[][]xx={{3,2,7},{1,5},{6}};与数组相关函数使用System.arraycopy()函数拷贝数组用Arrays.sort来排序数组数组的应用实例用Java输出杨辉三角形—定义二维数组描述三角形元素:a[ROW+1][]—分配每一行数组的列数finalintROW=8;inta[][]=newint[ROW+1][];for(inti=0;i<=ROW;i++)a
5、[i]=newint[i+1];数组的应用实例用Java输出杨辉三角形for(inti=0;i<=ROW;i++)for(intj=0;j<=a[i].length-1;j++){if(i==0
6、
7、j==0
8、
9、j==a[i].length-1)a[i][j]=1;elsea[i][j]=a[i-1][j-1]+a[i-1][j];}—按照每行每列的值打印结果a[i][j]—确定数组每个元素值:a[i][j]Java语句程序的流程控制—顺序结构顺序结构就是程序从上到下一行一行执行的结构,中间没有判断和跳转,直到程序
10、结束。—选择结构If语句,switch语句—循环结构while语句,do-while语句,for语句If语句的选择结构—if(表达式)语句;—if(表达式)语句1;else语句2;—if(表达式1)语句1;elseif(表达式2)语句2;…else语句n;每个语句可以是使用{}组成的复合语句If语句的选择结构If语句还可以嵌套使用,嵌套时最好使用{}确定层次界限if(表达式1)if(表达式2)语句1;else语句2;esleif(表达式2)语句3;else语句4;—变量=布尔表达式?true语句1:false语句
11、2;intmaxValue=(a>=b)?a:b;switch语句的选择结构Switch(表达式){case常量表达式1:语句1;case常量表达式2:语句2;…case常量表达式n:语句n;default:语句n;}default语句是可选的,它接受除上面接受值的其他值,通俗的讲,就是谁也不要的都归它。case后面可以跟多个语句,这些语句可以不用大括号括起来。switch语句的选择结构switch语句的判断条件,可接受int,byte,char,short型,不可以接受其他类型(为什么不能在switch语句中对
12、字符串进行检测?书P61)一旦碰到第一次case匹配,就会开始顺序执行以后所有的程序代码,而不管后面的case条件是否匹配,后面case条件下的代码都会被执行,直到碰到break语句为止。我们可以利用这个特点来用同一段语句处理多个case条件编写程序计算某年某月有多少天?(书P55)while循环语句While(表达式)语句;intx=1;while(x<3){Syste