数组
数组是一组变量集合,存储
相同数据类型的一组数据
特点:连续的空间(按照顺序依次排列)
声明一个
变量
就是在内存空间划出一块
合适
的空间
声明一个
数组
就是在内存空间划出一串
连续
的空间
数组名,即标识符,连续空间的首地址。元素下标标明了元素在数组中的位置,
从0开始
。数组中的每一个元素都可以通过下标来访问。
特点:
数组长度固定不变,避免数组越界
使用数组(四步)
1.声明数组 int[ ] a; //得知数据类型(int)与数组名(a)
2.分配空间 a=new int[5]; //数组长度5,new为创建的对象分配空间
3.赋值 a[0]=8; //如果不赋值,默认都为0
4.处理数据 a[0]=a[0]*10; //给a[0]重新赋值
求平均数
public class Ch02 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//总分
int sum=0;
//1.声明数组
int [] score;
//2.分配空间
score=new int[30];
//3.赋值
for(int i=0;i<score.length;i++){
score[i]=50+i;
sum+=score[i];
}
//4.使用数组
System.out.println("平均分是:"+sum/30);
}
}
数组赋值
方法1:边声明边赋值
int [ ] score={89,79,76}; //常用
int [ ] score=new int[ ]{89,79,76}; //不能指定数组长度,
[ ]中不写个数
方法2:使用循环
(遍历数组
)
Scanner input=new Scanner(System in);
for(int i=0;i<30;i++){
score[i]=input.nextInt();
}
实例:打印
//注意:字符串类型用String定义,元素要用双引号 “ ”
public class Ch04 {
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] sp={"Nike背包","运动衫","运动鞋","外套","腰包"};
System.out.println("本次活动特价商品有:");
for(int i=0;i<sp.length;i++){
System.out.println(sp[i]);
}
}
}
打印如图所示
import java.util.Scanner;
public class Ch05 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
double[] money=new double[5];
double sum=0;
for(int i=0;i<money.length;i++){
System.out.print("请输入第"+(i+1)+"笔购物金额:");
money[i]=sc.nextDouble();;
sum+=money[i];
}
System.out.println("序号\t金额(元)");
for( int i=0;i<money.length;i++){
System.out.println(i+1+"\t"+money[i]);
}
System.out.println("总金额\t"+sum);
}
}
求四家店的最低价格
import java.util.Scanner;
public class Ch066 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
double[] money=new double[4];
System.out.println("请输入四家店的价格");
for(int i=0;i<money.length;i++){
System.out.print("第一店的价格:");
money[i]=sc.nextDouble();
}
double min=money[0];
for(int i=1;i<money.length;i++){
if(money[i]<min){
min=money[i];
}
}
System.out.println("最低价格是:"+min);
}
}
数组的遍历
通过for循环
for(int i=0;i<score.length;i++){
System.out.println("score["+i+"]="+score[i]);
}
通过
foreach循环
:只能得到全部,完整,所有的元素,但写法简单
语法:第一个表达式是声明一个变量去接收每次循环的到的元素
第二个表达式是需要遍历的数组或集合
表达式一的数据类型必须跟表达式二的数据类型一致
int[] scores={77,88,99};
int[] scores2={7,8,9};
for(int score:scores){
System.out.println(score);
}
//score为定义的一个变量,得到数组的每一位元素
//scores表示一个对象,这里为scores数组
for(int score:scores2){
System.out.println(score);
}
附加注意:基本数据类型传的是值
引用数据类型传的是地址