数组
笔记:
数组是一个变量,存储相同的数据类型的一组数据
数组基本要素:标识符、数组元素、元素下标(从0开始)、元素类型
数组长度固定不变,避免数组越界
使用数组
1、声明数组 int[ ]a;
2、分配空间a=new int[5];
3、赋值a[0] = 8;
4、处理数据a[0] = a[0]*10;
数据类型[] 数组名 = new 数据类型[大小];
数据元素根据类型不同,有不同的初始值
异常笔记
数组越界:
java.lang.ArrayIndexOutOfBoundsException:2
案例:
int[]scores = new int[2];
scores[0] = 90;
scores[1] = 85;
scores[2] = 65;
System.out.println(scores[2]);
java.lang.ArrayIndexOutOfBoundsException:2
出现的原因:定义的数组长度为2,数组下标只能到1
解决方案:a、把定义的长度改为3。b、把scores[2]=65;删除
作业:
packagecom.Eightjava;importjava.util.Scanner;public classZuoye1 {//数组插入一个值升序排列
public static voidmain(String[] args) {
Scanner sc= newScanner(System.in);int[] shuzu =new int[7];//定义一个长度为7的数组
shuzu[0]=11;
shuzu[1]=15;
shuzu[2]=18;
shuzu[3]=21;
shuzu[4]=26;
shuzu[5]=30;
System.out.println("未插入值前的排序");for(intshuzus:shuzu) {//加强for循环,输出未插入值前的排序
System.out.print(shuzus+" ");
}
System.out.println("\n请输入要插入的值:");int zengjia =sc.nextInt();//输入一个要插入的值
int xiabiao = -1;//定义下标
for(int i=0;i
if(zengjia
xiabiao=i;break;
}
}for(int i=shuzu.length-2;i>=xiabiao;i--) {//将寻找到下标后面的所有数组值依次替换到后面的数组空间
shuzu[i+1] =shuzu[i];
}
shuzu[xiabiao]=zengjia;//将寻找到的下标上的数组值替换成输入的值
System.out.println("插入增加的数,按升序排列:");for(intshuzus:shuzu) {
System.out.print(shuzus+" ");
}
}
}