- 创建数组
- 数组到底是个什么?
- 通俗来说我们可以称它为一个容器:简单来说容器就是可以用来装东西,不同的容器自然也可以装不同的东西
- 其中它所有的元素都是具有相同数据类型的,就好比如,水杯只能去装水,
- 数组一旦创建成功,就不能随意改变它的大小就。
- 数组是一种容器但这种容器,他有他自己的特点,这是一种特殊的容器,
- 数组定义变量
- <类型>[]<名字>=new<类型>[元素个数];
- int[] grades=new int[100];
- double[]averages=new double[20];
- 元素个数必须是整数
- 元素个数必须给出
- 元素个数可以是变量
- int[] grades=new int[3.14];这样后面是小数的话你的代码就回报错他会说类型不匹配
- 举例:
- 创建一个int类型的数组
- int[]a=new int[10];
- 是个元素:a[0],a[1],a[2].....a[9];
- 我们这个数组都是从0开始的
- 每一个元素都是一个int的变量
- 可以读可以写
- a[2]=a[1]+6;
- 他就是一个变量比如说一个int类型的数组当中的每一个元素拿出来他就是一个int类型的变量你可以拿来读它的值,也就是放在辅助号的右边,也可以拿来作它的扶持,也就是放在扶持的左边
- 数组的元素
- 数组的每一个元素都是那种类型的变量,如果我们去访问的话,我们是通过索引或者叫做下标去访问它的索引,或者说下标一定是一个整数,这个整数是从0开始的
- 有效的下标
- 最小的下标是0,最大的下标是数组的元素个数-1
- 可是编译器不会检查看你是否用了有效的下标
- 如果运行的时候出现了无效下标可能会导致程序终止
- 每一次使用那个数组,它都会去检查你对数组的使用是不是越界,它的下表是不是越界,
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int x;
double sum = 0;
int cut = 0;
int [] numbers = new int[100];
x= sc.nextInt();
while (x!=-1){
numbers[cut] = x;
sum +=x;
cut ++;
x = sc.nextInt();
}if (cut>0){
double a = sum/cut;
for (int i = 0; i < cut;i++){
if (numbers[i]>a){
System.out.println(numbers[i]);
}
}
}
}
}
程序输入很多很危险的是因为我们在在这里创建了100个int类型的数组在上面的程序中cut不断的+1+1,
如果没有任何限制cut会超过100,只要超过或达到100这个时候我们在做number cnt等于x;他就会抛开异常
那怎么改正
我们可以让用户先输入一个数子,先告诉我们输入多少个数字,然后我们根据那个数子来决定我说这一次的数组应该开多大,然后再把这个数组读进来