理解数组的作用
为什么需要数组
数组是一个变量,存储相同数据类型的一组数据
声明一个变量就是在内存空间划出一块合适的空间 声明一个数组就是在内存空间划出一串连续的空间
什么是数组
数组基本要素:标识符 数组元素 元素下标:从0开始 元素类型
掌握数组的定义
如何使用数组
1.声明数组 :int[ ] a; 2.分配空间:a = new int[5]; 3.赋值 :a [0] = 8; 4.处理数据:a [0] = a[0] * 10;
声明数组
声明数组: 告诉计算机数据类型是什么
int[ ] score1; //Java成绩
int score2[ ]; //C#成绩
String[ ] name; //学生姓名
语法:数据类型 数组名[ ] ;或数据类型[ ] 数组名,声明数组时不规定数组长度
分配空间
分配空间: 告诉计算机分配几个连续的空间
scores = new int[30];
avgAge = new int[6];
name = new String[30];
声明数组并分配空间
数据类型[ ] 数组名 = new 数据类型[大小] ;
//数组元素根据类型不同,有不同的初始值
数组赋值
处理数据
//对数据进行处理:计算5位学生的平均分
int [ ] scores = {60, 80, 90, 70, 85};
double avg;
avg = (scores[0] + scores[1] + scores[2] + scores[3] + scores[4])/5;
int [ ] scores = {60, 80, 90, 70, 85};
int sum = 0;
double avg;
for(int i = 0; i < scores.length; i++){
sum = sum + scores[i];
}
avg = sum / scores.length;
练习1:猜数游戏
有一个数列:8,4,2,1,23,344,12 循环输出数列的值 求数列中所有数值的和 猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数
Scanner input=new Scanner(System.in);
int sum=0;
int number=0;
int i=0;
System.out.println("输入一个数");
number=input.nextInt();
boolean flag=false;
int arr[]=new int[]{8,4,2,1,23,344,12};
for (int arrs:arr) {
System.out.println(arrs);
sum+=arrs;
if (number==arrs){
flag=true;
}
}
System.out.println(flag ? "中了" : "没中");
System.out.println("数组的和"+sum);
求最大值
从键盘输入本次Java考试五位学生的成绩,求考试成绩最高分
//从键盘输入本次java考试五位学生的成绩,求考试成绩最高分
Scanner input=new Scanner(System.in);//创建input键盘输入函数
int [] arr=new int[5];//定义一串长度为五的数组
int max=0;//定义一个int类型的max
System.out.println("请输入五个学生成绩");
for (int i=0;i<arr.length;i++){//创建循环遍历数组
System.out.println("请输入第"+(i+1)+"个学生成绩");
arr[i]=input.nextInt();//遍历的数组使用input的函数输入成绩
if(max<arr[i]){//判断max和数组的大小,数组大就赋值给max
max=arr[i];//
}
}
System.out.println("最高分的成绩为:"+max);
插入数值:有一组学员的成绩{99,85,82,63, 60},将它们按降序排列。要增加一个学员的成绩,将它插入成绩序列,并保持降序
Scanner input=new Scanner(System.in);//创建input键盘输入函数
int scors=input.nextInt();//定义一个键盘输入的数
int num=0;//定义初始下标
int [] arr=new int[]{99,85,82,63,60,0};//创建一个数组并赋值
for (int i=0;i<arr.length;i++){//循环遍历
if(scors>arr[i]){//判断键盘输入的数和数组的大小
num=i;//scors比arr[i]大就记录下标
break;//中断循环
}
}
for(int i=arr.length-1;i>num;i--){//从后往前遍历下标大于记录的下标
arr[i]=arr[i-1];//将前面的数赋给后面
}
arr[num]=scors;//将scors的数赋值给记录的下标
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);//循环输出数组
}
练习2:获取最低价手机价格:需求说明 求出4家店的最低手机价格
步骤 1.定义数组存储价格,并利用循环输入 2.定义变量min保存当前的最低价 3. 将min和数组中的其余元素依次比较
int arr[]=new int[4];
Scanner input=new Scanner(System.in);
for(int i=0;i<arr.length;i++){
System.out.print("第" + (i+1) + "家手机店的价格:");
arr[i]=input.nextInt();
}
int money=arr[0];
for(int i=1;i<arr.length;i++){
if(arr[i]<money){
money=arr[i];
}
}
System.out.println("最低价格是:" + money);