认识多维数组

如果要存储多年的成绩怎么办?

  • 为每年创建一个数组?

  • 这种行为和为每一门成绩创建一个变量很像!

import java.util.Scanner;

public class OneYearOneArray {
  public static void main(String[] args) {
      int chinese = 0;
      int math = 1;
      int english = 2;
      int physics = 3;
      int Chemical = 4;
      int biology = 5;


      int totalScoreCount = 6;

      String[] course_name = new String[totalScoreCount];

      course_name[chinese] = "语文";
      course_name[math] = "数学";
      course_name[english] = "英语";
      course_name[physics] = "物理";
      course_name[Chemical] = "化学";
      course_name[biology] = "生物";

      //每门课的成绩 第一年
      double[] year1 = new double[totalScoreCount];

      //随机数给成绩赋值
      for (int i = 0; i < totalScoreCount; i++) {
          year1[i] = 80 + Math.random() * 20;
      }


      //每门课的成绩 第一年
      double[] year2 = new double[totalScoreCount];

      //随机数给成绩赋值
      for (int i = 0; i < totalScoreCount; i++) {
          year2[i] = 80 + Math.random() * 20;
      }

      //每门课的成绩 第一年
      double[] year3 = new double[totalScoreCount];

      //随机数给成绩赋值
      for (int i = 0; i < totalScoreCount; i++) {
          year3[i] = 80 + Math.random() * 20;
      }


      double[] yearToUse;

      Scanner scanner = new Scanner(System.in);
      System.out.println("请输入要查看第几年的成绩:");
      int year = scanner.nextInt();

      switch (year) {
          case 1:
              yearToUse = year1;
              break;
          case 2:
              yearToUse = year2;
              break;
          case 3:
              yearToUse = year3;
              break;
          default:
              System.out.println("输入的年份不对, 将查看最新一年的成绩");
              yearToUse = year3;
              break;

      }

      System.out.println("请输入要查看的成绩编号:");
      int scoreIndex = scanner.nextInt();
      System.out.println("第" + year + "年的" + course_name[scoreIndex] + "的成绩是:"+yearToUse[scoreIndex]);

  }
}

多维数组

创建一个二维数组,二维数组是一位数组的自然延伸

  • double[][]scores = new double[3][6]

  • double[][]scores = new double[3][6]

//java中 ,并没有限制数组的维度 ,但是三维四维数组数据量就比较复杂了

使用多维数组的方法存储多年的成绩

import java.util.Scanner;

public class OneArrayForAll {
  public static void main(String[] args) {
      int chinese = 0;
      int math = 1;
      int english = 2;
      int physics = 3;
      int Chemical = 4;
      int biology = 5;


      //int totalScoreCount = 6;

      String[] course_name = new String[6];

      course_name[chinese] = "语文";
      course_name[math] = "数学";
      course_name[english] = "英语";
      course_name[physics] = "物理";
      course_name[Chemical] = "化学";
      course_name[biology] = "生物";

      Scanner in = new Scanner(System.in);
      System.out.println("请问要保存几年的成绩? ");

      int yearToStores = in.nextInt();

      double[][] scores = new double[yearToStores][course_name.length];

      for (int i=0;i<yearToStores;i++){
          for (int j=0;j< course_name.length;j++){
              scores[i][j] = 80 + Math.random() * 20;
          }
      }
      System.out.println("请问你要查看第几年的成绩?");
      int year = in.nextInt() - 1;
      //这里输入是数组的下标,因此需要-1

      System.out.println("请输入要查看的课程编号");

      int scoreIndex = in.nextInt() - 1;
      System.out.println("第"+(year+1)+"年的"+course_name[scoreIndex]+"成绩是:"+scores[year][scoreIndex]);
  }
}

 

遍历二维数组

public class MultiDimensionArray {
  public static void main(String[] args) {
      //创建一个double类型的数组
      double[][] multDimensionArr = new double[3][5];

      //循环查看每个数组的值 ,在给数组元素赋值前 ,数组元素的值其实都是每种类型的初始值
      for (int i=0;i<multDimensionArr.length;i++){
          for (int j=0;j<multDimensionArr[i].length;j++){
              System.out.println("mulDimensionArr["+i+"]["+j+"] = "+multDimensionArr[i][j]);
          }
      }

      //其实第一维的数组 ,每个元素都是一个下一维度的属于的变量。在这里我们可以改变这个变量的值
      //也就是让它指向一个新的变量。
      multDimensionArr[2] = new double[100];

      //检查每个的数组的长度,发现最后一个的长度不一样了,因为它指向了新的数组。
      for (int i = 0;i<multDimensionArr.length;i++){
          System.out.println("multiDimensionArr[" + i + "].length=" + multDimensionArr[i].length);
      }

       

  }
}
posted @ 2022-04-16 16:26  comia  阅读(29)  评论(0)    收藏  举报