一、数组的理解
数组,是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。这些无序排列的同类数据元素的集合称为数组。
在存储一个班级的成绩时,如果一个班的人数很少,可以分别将他们定义到一个变量中,例如int a1=90,int a2=80这种,如果班上人数很多,则存储得很麻烦,这种情况则需要用到数组,更方便存储和拿取数据。
二、数组的定义和初始化
1.数组的定义
数组(array)是一种容器,用来存储同种数据类型的多个值。 存储在一个数组中的数据必须为同一数据类型,不然会报错。
定义格式:
①数据类型 [] 变量名
范例:int[] array
②数据类型 变量名[]
范例:int array[]
2.数组的初始化
①动态初始化:初始化只指定数组长度,由系统为数组分配初始值。
这种一般适用于数据不确定的情况。
格式:数据类型 [] 变量名=new 数据类型{数组长度};
范例:int [] arr = new int[3];
②静态初始化:初始化时,就可以指定要存储的元素,系统还会自动计算该数组长度。
格式:数据类型 [] 变量名=new 数据类型{数据1,数据2,数据3};
范例:int [] arr = new int[]{1,2,3};
简化格式:数据类型 [] 变量名 ={数据1,数据2,数据3};
动态初始化与静态初始化的区别:
动态初始化:手动指定数组长度,由系统给出默认初始值。
静态初始化:手动指定数组元素,系统会根据元素个数,计算出数组长度。
三、实例
①在数组{4,5,6,2,3,1,9,8,7,10,12,14,15}中查找元素(先打印输出所有元素,输入一个数,如果找到了则打印输出其位置,没有找到则提示没有找到)
package array;
import java.util.Scanner;
/**
* Author lilshork
* Date 2022/7/4 16:52
* 5、在数组{4,5,6,2,3,1,9,8,7,10,12,14,15}中查找
* 元素(先打印输出所有元素,输入一个数,如果找到了则打印输出其位置,没有找到则提示没有找到)
**/
public class Demo10 {
public static void main(String[] args) {
int a[] = {4, 5, 6, 2, 3, 1, 9, 8, 7, 10, 12, 14, 15};
int index = 0;
int count = 0 ;
System.out.print("数组中的数有:");
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
System.out.println();
System.out.println("请输入一个数字:");
int s = scanner.nextInt();
for (int i = 0; i < a.length; i++) {
if (s == a[i]) {
index = i;
System.out.println("能找到这个数,它的下标为:" + index);
count++;
}
}
if (count==0){
System.out.println("没有找到!");
}
}
}
②定义一个数组来存储12个学生的成绩{72,89,65,58,87,91,53,82,71,93,76,68} ,计算并输出学生的平均成绩。(保留两位小数)
package array;
/**
* Author lilshork
* Date 2022/7/4 16:16
* 定义一个数组来存储12个学生的成绩{72,89,65,58,87,91,53,82,71,93,76,68}
* 计算并输出学生的平均成绩。(保留两位小数。)
**/
public class Demo08 {
public static void main(String[] args) {
double score[] = {72,89,65,58,87,91,53,82,71,93,76,68};
double sum = 0;
for (int i = 0;i<12;i++){
sum+=score[i];
}
double avg = sum/score.length;
System.out.println("总成绩为"+sum);
System.out.print("平均成绩为"+String.format("%.2f",avg));
}
}