您的位置:首页 > 编程语言 > Java开发

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

2017-02-09 00:35 816 查看

数组

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

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.二维数组

静态初始化:

int[][] scores;
scores = new int[][]{{1, 2,3},{3, 4, 5},{6}};


动态初始化:

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


内存结构



举例:



一维数组练习

/*

从键盘读入学生成绩,找出最高分,并输出学生成绩。

成绩>=最高分-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);
}
}
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐