1.数组赋值
·方法一:边声明边赋值
public class Test {public static void main(String[] args){int[] scores = {1,2,3};int scores[] = new int[]{1,2,3};}
}
·方法二:动态地从键盘录入信息并赋值
import java.util.Scanner;public class Test040501 {public static void main(String[] args){Scanner input = new Scanner(System.in);for(int i =0;i<30;i++){scores[i] = input.nextInt();}}
}
2.利用数组对数据进行处理:计算平均值
public class Test {public static void main(String[] args) {//所有数值的和int sum = 0;int nums[] = {8,4,2,1,23,344,12};for (int i =0;i<nums.length;i++){sum+=nums[i];}//计算平均值System.out.println("所有数值的平均值为:"+sum/nums.length);}
}
计算结果为:56
3.遍历一个数组(使用for循环)
public class Test {public static void main(String[] args){int scores[] = {1,2,3,4,5,6,7};for(int i =0;i<scores.length;i++){System.out.println(scores[i]);}}
}
方法一
public class Test {public static void main(String[] args){int scores[] = {1,2,3,4,5,6,7};for(int score:scores){System.out.println(score+"\t");}}
}
方法二
4.改变数组的内容
·使用传统的for方法可以改变
public class Test {public static void main(String[] args){int scores[] = {1,2,3,4,5,6,7};//改变数组内容for(int i =0;i<scores.length;i++){//给数组内的每一个元素都加上1scores[i]+=1;}for(int score:scores){System.out.print(score+"\t");}}
}
输入结果为:{ 2 , 3 , 4 , 5 , 6 , 7 , 8 }
·但是用foreach方法就无法改变数组内容
public class Test {public static void main(String[] args){int scores[] = {1,2,3,4,5,6,7};//foreach方法无法改变数组内容for(int score:scores){//把数组中每一个元素加1score+=1;System.out.print(score+"\t");}System.out.println();//遍历数组for(int i =0;i<scores.length;i++){System.out.print(scores[i]+"\t");}}
}
虽然在第一个for循环中,输出结果为{ 2 , 3 , 4 , 5 , 6 , 7 , 8 } ,
但是第一个for循环结束后嘛,最终的输出结果为{ 1 , 2 , 3 , 4 , 5 , 6 , 7 },
即代表原数组并未被改变
5.数组定义的内存结构
·Int[] scores = new int[5]
6.“两个数组相互赋值,修改第二个数组的元素时,第一个数组的也被改变”原理
public class Test040501 {public static void main(String[] args){int score1[] = {1,2,3,4,5};int score2[] = score1;score2[0] = 11;System.out.println(score1[0]);}
}
修改score2[0]后,score1[0]也跟着被修改
图解
7.课堂练习
(1)录入会员的消费记录,并打印表示出来
import java.util.Scanner;public class Test {public static void main(String[] args){Scanner input = new Scanner(System.in);//定义一个数组来储存会员的消费记录double budgets[] = new double[5];//总金额double sum = 0;System.out.println("请输入会员本月的消费记录");for(int i =0;i<budgets.length;i++){System.out.println("请输入第"+(i+1)+"笔购物金额:");budgets[i] = input.nextDouble();//计算总金额sum+=budgets[i];}//输出账单System.out.println("序号\t金额(元)");for(int i =0;i<budgets.length;i++){System.out.println((i+1)+"\t"+budgets[i]);}System.out.println("总金额\t"+sum);}
}
代码部分
输出结果
(2)求4家手机店的最低价
import java.util.Scanner;public class Test {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("求出4家店的最低手机价格");//给4家店的手机价格声明创建一个数组int prices[] = new int[4];//分别输入4家店的手机价格for(int i =0;i<prices.length;i++){System.out.println("第"+(i+1)+"家店的价格:");prices[i] = input.nextInt();}//将第1家店的价格先设为最低价int min = prices[0];for(int i =1;i<prices.length;i++){if(prices[i]<min){min = prices[i];}}System.out.println("最低价格是:"+min);}
}
代码部分
输出结果