Java程序设计基础 数组-2

今天我们继续上一节的分享。

数组是一种容器,现代编程手段容器是一种非常重要的东西,容器简单来说就是“放东西的东西”,但这种容器有它自己的特点,比如说我们之前定义的<numbers>,它是int类型的numbers,它只能放int类型的数据如果我们放一个其他数据类型的,我们看

它立马就会报错,类型不匹配。

也就是说数组这种东西他有一个突出的特点就是 它里面的所有东西都是相同类型的,他只能把我确定的类型的那种东西放进里面,然后所有的都是一个类型。

第二个特点就是一旦创建数组之后我们是不能改变大小的。

在这个程序里面数组的大小反映在 100 这个数字上面,也就是说我在创建数组的时候我就要 new 一个 100 这么大的数组,这个事情定下来就定下来了,我没有办法说这 100 个我用了 50 个,剩下的 50 个我还给你好了,不行,做不到。

前面让大家观察了为什么这段代码有安全漏洞,你说只能读 100 个,那我程序读读读 读101个怎么办,我也没有办法来改变它,数组的大小一旦确定遍无法被改变,动不了。

我们定义数组的时候得这样:

<类型>[] <名称> = new <类型>[元素个数];

例如:

                int[] grades = new int[20];
                double[] averages = new double[100];

那么在这个当中呢,元素的个数必须是整数,带小数点的不行。我们试一下

报错了,类型不匹配,再有一个呢 元素的个数必须要给出,比如说我在这个地方不给个数,我们看一下

不行,告诉我必须进行数组初始化造作,那我这么写行不行

int[100] numbers = new int[100];      我们来看一下

还是不行,语法上有错误,个数必须在new上面给出,而new的后面又必须给出个数。

但是这个个数可以是个变量,不见得必须是个常量,比如说我们的 100 。

我们的元素是从0开始数,a[0]-a[9],一共10个元素。

那么这个传统呢是从C语言传来的,在C语言中编译器从0开始数呢,很多事情都会变得很方便,所以这个传统就一直这么传了下来。

数组中的每一个元素拿出来都是一个变量,我们可以这么写 a[0] 表示数组a[]中的第一个元素。我们既可以拿来读他的值,也可以拿来作赋值。

这就是数组。

下面是举例的代码

import java.util.Scanner;
public class Average {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
                Scanner in = new Scanner(System.in);
                System.out.println("Please enter some numbers and end with a -1 input:");
                int num = in.nextInt();
                int[] numbers = new int[100]; 
                double sum = 0;
                int cnt = 0;
                while(num != -1)
                {
                    numbers[cnt] = num;
                    sum += num;
                    cnt++;
                    num = in.nextInt();
                }
                if(cnt > 0)
                {
                    double average = sum/cnt;
                    for(int i = 0 ;i < cnt ;i++)
                    {
                        if (numbers[i] >= average)
                        {
                            System.out.println(numbers[i]);
                        }
                    }
                    System.out.println("the average is :" + average);
                }

            }
        
    

}

 

posted @ 2017-04-06 10:00  茕茕白兔  阅读(125)  评论(0编辑  收藏  举报