3.11.1 一维数组(2)
当运行这个程序时,会打印出4月份中的天数。前面提到过,Java数组的索引从0开始,所以4月份中的天数是month_days[3]或30。
可以将数组变量的声明和数组本身的分配组合起来,如下所示:
- int month_days[] = new int[12];
在专业编写的Java程序中,通常采用的就是这种方式。
当声明数组时,可以对其进行初始化,这一过程与初始化简单类型的过程相同。数组初始化器(array initializer)是一个位于花括号中由逗号分隔的表达式列表。用逗号分隔开数组元素的值。Java会自动创建足够大的数组,以容纳在数组初始化器中指定的元素的数量。这时不需要使用new运算符。例如,为了保存每个月份中的天数,下面的代码创建了一个已初始化的整数数组:
当运行这个程序时,看到的输出与程序前面版本生成的输出相同。
Java会进行严格的检查,以确保不会意外地试图保存或引用数组范围之外的值。Java运行时系统会进行检查,以保证所有数组索引都在正确的范围之内。例如,运行时系统会检查month_days的每个索引值,以确保它们在0到11之间。如果试图访问数组范围之外(索引为负数或大于数组长度)的元素,就会导致运行时错误。
下面是使用一维数组的另外一个例子,该例计算一组数字的平均值。