import java.util.Scanner;
public class ArrayDemo {
/* 要保存单个数据在内存中,可以使用变量的方式
* java中要保存多个相同类型的数据时,可以使用 数组:
* 1.数组的创建方式
*/
public static void main(String[] args) {
// demo01();
demo02();
// demo03();
}
private static void demo03() {
int a=1;
System.out.printf("qiwiqwu%04dyuu",20);
System.out.printf("qiwiqwudyuu%.1f",2.56897);
}
// 从控制台输入5个学生的成绩,保存在数组中,并打印所有成绩
private static void demo02() {
double[] array=new double[5];
Scanner scanner=new Scanner(System.in);
for (int i = 0; i < array.length; i++) {
// 将获取的成绩保存到数组对应下标的位置中
System.out.println("请输入第"+(i+1)+"个学生的分数");
array[i]=scanner.nextDouble();
}
// 打印数据中的元素(遍历)
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
}
/*
* 数组的创建方式
*/
private static void demo01() {
// 第一种方式 new关键字 ,创建一个空数组
int[] arr=new int[5];//创建一个可以放5个int 类型数据的空间
// new关键字产生的值都是引用类型,位置已经不在栈,而会放在堆区,堆区未被赋值时,所有被请求的空间都会默认赋初值为0.
// 向数组中添加数据,数组中使用中括号[位置],位置就是数组的下标,从0开始
// 数组的作用就是存取一组数据
arr[0]=28;
arr[1]=22;
arr[2]=25;
// arr[3]=30;
arr[4]=26;
// arr[5]=40; // 会造成下标越界异常 java.lang.ArrayIndexOutOfBoundsException ,会看异常,从上往下查找
// 2.获取数组的长度(数组可以保存多少个元素)
// 元素:指的就是数组中保存的具体 的数据
System.out.println(arr.length); // 打印数组的长度
System.out.println(arr[arr.length-1]); // 打印数组中最后一个数据
System.out.println(arr); // [I@15db9742 //代表当前变量是一个引用类型
// System.out.println(arr[1]);
// System.out.println(arr[2]);
// System.out.println(arr[3]);
// System.out.println(arr[4]);
// [I@15db9742 [表示这个引用类型指向的空间是一个数组,I表示是一个int @表示拼接符 5db9742表示首地址(16进制)
// 未赋值的堆地址默认被0填充。例如上面的arr[3]未被赋值,打印出来就是0
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
// 数组的第二种创建方式,当知道数据时什么的时候保存数组数据
// 静态初始化一个数组 数组长度会根据花括号{}中的个数来确定
// double[] scores= new double[] {89.9,88,86.5,60,98,30.5,};
// 优化写法:后期常用的方式
double[] scores={89.9,88,86.5,60,98,30.5,};
//0代表第一个数据,3代表第4个数据
System.out.println(scores[3]);
// 添加数据
// 静态初始化后的数组会根据初始数据确定数组长度,后期不能添加
// scores[6]=80;
scores[3]=85.6;
for (int i = 0; i < scores.length; i++) {
System.out.println(scores[i]);
}
}
}