57_初识Java_数组的引入_学习

57_初识Java_数组的引入_学习

需求:录入今日多笔消费金额,求今日消费总额,求今日消费金额的平均数
import java.util.Scanner;
public class LearnArray01{
	
	public static void main(String[] args){
		Scanner sc=new Scanner(System.in);
		int orderNum=3;
		double money=0;
		double sum=0;
		for(int i=1;i<=orderNum;i++){
			System.out.print("请录入今日第"+i+"笔消费的金额: ");
			money=sc.nextDouble();
			sum+=money;
		}
		
		System.out.println("今日"+orderNum+"笔消费的总金额为:"+sum);
		System.out.println("今日"+orderNum+"笔消费金额的平均数为:"+sum/orderNum);
	}
	
}

57_初识Java_数组的引入_学习

需求升级:录入今日多笔消费金额,求今日消费总额,求今日消费金额的平均数
并能查询第几笔消费的金额

数组

数组的作用

数组用来存储相同类型的数据

1、数组声明

int[] arr;
int[] arr2=null;

57_初识Java_数组的引入_学习

2、数组创建

arr=new int[3];
//编译期声明和创建会被合为一句: int[] arr=new int[3];

57_初识Java_数组的引入_学习

3、数组赋值

数组类型默认值:
1)、基本数据类型的数组:
	byte[] ---> 0
	short[] ---> 0
	int[] ---> 0
	long[] ---> 0
	float[] ---> 0.0
	double[] ---> 0.0
	char[] ---> '\u0000'
	boolean[] ---> false
2)、引用数据类型的数组: 默认初始值null
	String[] ---> null

57_初识Java_数组的引入_学习

  • 对数组超界赋值,可以通过编译,但是运行时会报错(数组索引下标越界异常)
java.lang.ArrayIndexOutOfBoundsException: 3

57_初识Java_数组的引入_学习

4、数组使用

  • 通过数组一个属性length获取其长度
public class LearnArray02{
	public static void main(String[] args){
		//1、声明(定义数组),只声明不操作相当于没定义
		//int[] arr;
		//int[] arr2=null;//空,赋值null和什么都没有赋值 不一样的效果
		//2、创建
		//arr=new int[3];//给数组开辟了一个长度为3的空间
		//编译期声明和创建会被合为一句: int[] arr=new int[3];
		int[] arr=new int[3];
		//3、赋值
		arr[0]=1;
		arr[1]=6;
		arr[2]=9;
		//arr[3]=10;//数组索引越界异常
		//4、使用
		System.out.println(arr[2]);
		System.out.println(arr[0]+222);
		//通过数组一个属性length获取其长度
		System.out.println(arr.length);
	}
}
  • 实现升级的需求
import java.util.Scanner;
public class LearnArray01{
	
	public static void main(String[] args){
		Scanner sc=new Scanner(System.in);
		int orderNum=3;
		double money=0;
		double sum=0;
		double orderArr[]=new double[orderNum];
		int arrIndex=0;
		for(int i=1;i<=orderNum;i++){
			System.out.print("请录入今日第"+i+"笔消费的金额: ");
			money=sc.nextDouble();
			orderArr[arrIndex]=money;
			arrIndex++;
			sum+=money;
		}
		
		System.out.println("今日"+orderNum+"笔消费的总金额为:"+sum);
		System.out.println("今日"+orderNum+"笔消费金额的平均数为:"+sum/orderNum);
		
		int searchIndex=0;
		for(;;){
			System.out.print("\n请输入要查询第几笔消费(输入800退出): ");
			searchIndex=sc.nextInt();
			if(searchIndex==800){
				break;
			}
			arrIndex=searchIndex-1;
			if(arrIndex>=0&&arrIndex<orderArr.length){
				System.out.print("\n今日第"+searchIndex+"笔消费的金额为: "+orderArr[arrIndex]);
			}else{
				System.out.println("该笔消费不存在");
			}
		}
		System.out.println("感谢您的使用,再见!");
	}
	
}

57_初识Java_数组的引入_学习

上一篇:剑指 Offer 57 - II. 和为s的连续正数序列


下一篇:Base64编码过程