• 创建数组
  • 数组到底是个什么?
  • 通俗来说我们可以称它为一个容器:简单来说容器就是可以用来装东西,不同的容器自然也可以装不同的东西
  • 其中它所有的元素都是具有相同数据类型的,就好比如,水杯只能去装水,
  • 数组一旦创建成功,就不能随意改变它的大小就。
  • 数组是一种容器但这种容器,他有他自己的特点,这是一种特殊的容器,
  • 数组定义变量
  • <类型>[]<名字>=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;他就会抛开异常
那怎么改正
我们可以让用户先输入一个数子,先告诉我们输入多少个数字,然后我们根据那个数子来决定我说这一次的数组应该开多大,然后再把这个数组读进来