第二章:Java_基本语法_5 数组

数组

数组:相同数据类型的数据的组合。

1.一维数组

如:
int score = 72;
int score = 90;
int score = 58;

使用数组:
1. 静态初始化:在声明并初始化与给数组相应的元素赋值操作同时进行。
int[] score1 = new int[]{72, 90, 58};//int[] score1 = {72, 90, 58};
2. 动态初始化:在声明并初始化与给数组相应的元素赋值操作分开进行。

int score2 = new int[3];
score[0] = 72;
score[1] = 90;
score[2] = 58;

注:数组长度一旦创建后数组长度不可变。
声明数组的错误写法:
1)String names = new String[5]{“AA”,”BB”,”CC”};
2)int a[10];
3)int i = new int[];

另外
1. 对于byte、short、int、long数组元素值默认为0
2. 对于float、double数组元素值默认为0.0
3. 对于char数组元素值默认为空格
4. 对于boolean数组元素值默认为false
5. 对于引用类型的变量构成的数组而言,默认初始化为null,以String为例

2.二维数组

  1. 静态初始化:
int[][] scores;
scores = new int[][]{{1, 2,3},{3, 4, 5},{6}};
  1. 动态初始化:
String[][] names;
names = new String[3][2];//动态初始化之一
或者
names = new String[4][];//动态初始化之二(不指定二维的长度)
names[0] = new String[5];
names[1] = new String[4];
namse[2] = new String[7];

错误的初始化:

names = new String[][];
names = new String[][5];
都是未指定第一维长度。

Q:二维数组如何遍历?

for(int m = 0;m < score.length;m++ ){
        for(int n = 0;n < score[m].length;n++){
            System.out.println(score[m][n]);
        }
    }

内存结构

这里写图片描述

举例:
这里写图片描述

一维数组练习

/*
从键盘读入学生成绩,找出最高分,并输出学生成绩。
成绩>=最高分-10 等级为A
成绩>=最高分-20 等级为B
成绩>=最高分-30 等级为C
其余 等级为D
提示:先读入学生人数,根据人数创建int数组,存放学生成绩
*/

public class TestStudentScore {
    public static void main(String[] args) {
        // 1,创建Scanner的对象,并从键盘获取学生的个数n
        Scanner s = new Scanner(System.in);
        System.out.println("请输入学生的个数:");
        int count = s.nextInt();// count记录学生的个数
        // 2,根据输入的学生个数n,创建一个长度为n的int型数组
        int[] scores = new int[count];
        int maxScore = 0;
        // 3,依次从键盘获取n个学生的成绩,并赋给相应的的数组元素,并获取n个学生中的最高分
        System.out.println("请输入" + count + "个数学生成绩:");
        for (int i = 0; i < scores.length; i++) {
            int score = s.nextInt();// 依次从键盘获取学生的成绩
            scores[i] = score;
            if (scores[i] > maxScore) {
                maxScore = scores[i];
            }
        }
        System.out.println("最高分为:" + maxScore);
        // 4,遍历学生成绩的数组,并根据学生成绩与最高分的差值,赋予相应的等级,并输出
        for (int i = 0; i < scores.length; i++) {
            char level;
            if (scores[i] >= maxScore - 10) {
                level = 'A';
            } else if (scores[i] >= maxScore - 20) {
                level = 'B';
            } else if (scores[i] >= maxScore - 30) {
                level = 'C';
            } else {
                level = 'D';
            }
            System.out.println("Student " + (i + 1) + " score is " + scores[i]
                    + " level is " + level);
        }
    }
}

这里写图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值