学习-Java数组之⼀维数值数组之成绩统计
任务描述
本关任务:统计某班级所有⼈的数学平均成绩。
相关知识
为了完成本关任务,你需要掌握: 1.声明⼀维数值数组变量; 2.⼀维数值数组的创建; 3.⼀维数值数组的长度; 4.⼀维数值数组的初始化。
数组对于每⼀门编程语⾔来说都是重要的数据结构之⼀,Java 语⾔中提供的数组是⽤来存储固定长度的同类型数据,这些数据称为数组元素。下⾯我们将介绍⽤于存储数值的⼀维数组。
声明⼀维数值数组变量
声明数值数组变量,⽤于代表⼀个对象, 只是⼀个名字⽽已, 对象还没有创建,下⾯是声明数值数组变量的语法:
1. 数据类型[] 数组名; // 中括号中不能有数字
⽰例:
1. // 声明⼀个⽤于存储int类型的数组变量 arr。
2. int [] arr;
3. // 声明⼀个⽤于存储long类型的数组变量 arr。
4. long [] arr;
5. // 声明⼀个⽤于存储double类型的数组变量 arr。
6. double [] arr;
创建⼀维数值数组
Java 语⾔使⽤ new 操作符来创建数组,语法如下:
1. new 数据类型[数组长度];
后期要想使⽤该数组,需要把数组变量指向该数组。 ⽰例:
1. // 声明⼀个数组变量并指向⼀个⽤于存储10个int类型的数组
2. int[] arr = new int[10];
⼀维数组初始化
数组初始化分为两种:动态初始化和静态初始化。 动态初始化:创建⼀个数组,指定数组长度,但不指定数组存储的具体值。根据数组存储数值类型的不同,会给数组⾃动赋不同的初始值,具体可分为以下两种:
对于 byte,short、int 和 long 类型,数组中每个值被赋值成 0;
对于 float,double 类型,数组中每个值被赋值成 0.0。
动态初始化⽰例:
1. public static void main(String[] args) {
2. // 创建⼀个⽤于存储10个int类型的数组
3. int[] ints = new int[10];
4. System.out.String(ints));
5. }
执⾏结果:
1. [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
在以上实例中,数组长度 10 可⽤变量代替,如下所⽰:
1. public static void main(String[] args) {
2. // 定义变量n
3. int n =10;
4. // 创建⼀个⽤于存储10个int类型的数组
5. int[] ints = new int[n];
6. }
静态初始化:创建⼀个数组,指定数组存储的具体值。 ⽰例:
1. // 声明⼀个⽤于存储数字10,20,30的的数组。
2. // 第⼀种⽅式:
3. int[] arr = new int[]{10,20,30};
4.
5. // 第⼆种⽅式:
6. int[] arr = {10,20,30};
⼀维数组元素的使⽤
数组的元素是通过索引访问的,数组索引从 0 开始。 创建数组 arr:
1. int[] arr = new int[]{10,20,30};
其中第⼀个元素 10 的索引为 0,第⼆个元素 20 的索引为 1,第三个元素 30 的索引为 2。我们可以通过如下⽅式访问数组:数组名[索引],获取出数组中的元素。arr[0] 可以获取到元素 10;
数组名[索引] = 数值,为数组中的元素赋值。arr[0]=40 可以把数组的第⼀个元素改成 40。
⽰例:
1. public class ArrTest {
2. public static void main(String[] args) {
3. // 定义数组,并赋初值
4. int[] arr = new int[]{10,20,30};
5.
6. // 通过索引获取第⼀个元素
7. System.out.println(arr[0]);
8.
9. // 为数组第⼀个元素赋值
10. arr[0]=40;
11.
12. // 重新查看数组第⼀个元素
13. System.out.print(arr[0]);
14.
15. }
16. }
执⾏结果:
1. 10
2. 40
⼀维数组长度
我们可以使⽤数组的属性 length 来获取数组的长度。 ⽰例:
1. public class ArrTest {
2. public static void main(String[] args) {
3. // 定义数组,并赋初值
4. int[] arr = new int[]{10,20,30};
5. // 获取数组的长度
6. System.out.println(arr.length);
7. }
8. }
执⾏结果:
1. 3
/
*
任务:仔细阅读给出的代码框架及注释,在 Begin-End 间编写程序代码,求班级数学平均成绩,具体要求如下:- 接收给定的数据(如:4,88,43,43,98,#...,其中第⼀个数代表数组长度,
其余数代表班级所有⼈数学成绩,# 号⽤于终⽌接收数据),遇到 # 号终⽌接收;
- 求班级数学平均成绩,平均成绩⽤ double 类型表⽰。
注意:数字分隔符为中⽂逗号。
*/
import java.util.Scanner;
public class ArrTest {
public static void main(String[] args) {
// 请在Begin-End间编写代码
/********** Begin **********/
// 第⼀步:接收给定的第⼀个数,⽤于定义数组长度
Scanner input = new Scanner(System.in);
int n = Int();
// 第⼆步:定义数组
int[] array = new int[n];
int i =0;
// 第三步:把成绩赋值给数组元素
while(!input.hasNext("#")){
array[i] = Int();
i ++;
}
/
/ 第四步:求所有成绩的和
java定义一维数组并赋值int sum = 0;
for(int j = 0;j < n;j ++){
sum += array[j];
}
// 第五步:求平均成绩
double average = sum * 1.0 / n;
System.out.print("数学平均成绩为:" + average);
/********** End **********/
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论