package java基础知识.数组和常用算法;
import java.util.Scanner;
public class 为什么要使用数组 {
/**
* @param 一次java内部测试结束,老师给牛德华分配了一个任务,计算全班5人的考试成绩求平均分.
* 1)按照以前的写法 定义30个变量,然后30个变量赋值以后数值的和除以30得到平均分
* 分析:这种方式太麻烦了要30个变量 一一相加.
* 我们能不能通过定义一个容器把30个数据全部存放里边,然后给容器内的每个数据进行编号,再通过操作这些数字的编号,来操作这些数据呢?
* 2)由1的分析,我们引出一个新的感念 数组.什么是数组?
* 数组就是一个用来存储一系列变量值的命名区域,因此可以用数组来组织变量
* 其实,数组也是一个变量,它存储的是相同类型的一组数据:
* 注意:数组中的元素应该是一系列相同类型的元素.不同数据类型是不能放到同一数组中的.
* 3)如何使用数组?
* 第一步:声明数组.如: int [] a; 表示定义一个int类型的数组,命名为a,该数组内的元素是int类型的变量
* 语法:
* 数据类型 数组名 [];
* 数据类型 [] 数组名;
* double [] score; //java成绩
* int age [] ; //年龄
* String [] name ; //学生姓名
* 第二步:分配数组内存空间,如: a = new int [5]; 表示在堆内存中开辟一个地址给数组a,a内存放了5个int类型的元素
* 语法:
* 数组名 = new 数据类型 [元素个数];
* score =new double [30];
* age =new int [30];
* name =new String [30];
* 第三步:给内存中的元素赋值,如:a[0] = 8 ;表示给数组a中的1号角标位赋值为 8,数组中的角标是从0开始计数的,数组中的元素如果没有被赋值是有初始化值的
* 赋值就是要向内存空间存放数据
* score[0]=89.5;
* score[1]=87.0;
* score[2]=84.5;
* score[3]=82.5;
* 上面的赋值操作比较麻烦.
* 赋值方法:
* 方法1:边声明边赋值,如:
* double [] score = {90.0,89.5,70.5}
* int age [] = new int []{18,17,15,20}
* String [] name = new String []{"大明","小明","大虎","小虎","狗"}
* 方法2:动态的从键盘输入信息并赋值.
* Scanner input =new Scanner(System.in);
* int [] score = new int[30];
* for(int i =0 ;i<score.length;i++){
* score[i]=input.nextInt();
* }
* 第四步:处理数据,如:a[0]= a[0]*8; 表示将数组内的1号角标位的数据乘以8,再赋值给存放进数组a内的1号角标位
*
*
*/
public static void main(String[] args) {
// 一次java内部测试结束,老师给牛德华分配了一个任务,计算全班考试成绩的平均分.
Scanner input = new Scanner(System.in);// 导入输入方式
System.out.println("请输入该班级的学生数 :");
int a = input.nextInt(); // 键盘输入导入学生的人数
int[] score = new int[a];// 定义一个数组用以储存学生的成绩
//int [] score = new int [];//这样写编译错误的,因为没有指明数组的大小
double sum = 0; // 定义变量存储学生的成绩之和
for (int i = 0; i < score.length; i++) {// 循环遍历数组中的每个角标,score.length可以计算数组的元素个数
System.out.println("请输入第" + (i + 1) + "位,学生的成绩 :");
score[i] = input.nextInt(); // 动态输入学生的成绩存进数组
sum += score[i]; // 累加学生的学习成绩
}
// 打印输出学生的平均分 就是:总成绩/人数
System.out.println(sum / score.length);
}
}
为什么要使用数组
最新推荐文章于 2022-11-01 11:14:57 发布