当前位置: 代码迷 >> 综合 >> 【Java】理论知识学习-DAY12
  详细解决方案

【Java】理论知识学习-DAY12

热度:48   发布时间:2024-01-15 21:28:38.0

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);}
}

代码部分

 输出结果

  相关解决方案