一维数组的使用规范及应用例题
使用规范
1.一维数组的声明与初始化
正确的方式:
int num;//声明
num = 10;//初始化
int id = 1001;//声明 + 初始化
int[] ids;//声明
//1.1 静态初始化:数组的初始化和数组元素的赋值操作同时进行
ids = new int[]{1001,1002,1003,1004};
//1.2动态初始化:数组的初始化和数组元素的赋值操作分开进行
String[] names = new String[5];
int[] arr4 = {1,2,3,4,5};//类型推断
错误的方式:
// int[] arr1 = new int[];
// int[5] arr2 = new int[5];
// int[] arr3 = new int[3]{1,2,3};
2.一维数组元素的引用
通过角标的方式调用。
//数组的角标(或索引从0开始的,到数组的长度-1结束)
names[0] = “a”;
names[1] = “b”;
names[2] = “c”;
names[3] = “d”;
names[4] = “e”;//charAt(0)
3.数组的属性:length
System.out.println(names.length);//长度为5
System.out.println(ids.length);//输出的是数组的长度
说明:
数组一旦初始化,其长度就是确定的。arr.length
数组长度一旦确定,就不可修改。
4.一维数组的遍历
for(int i = 0;i < names.length;i++){
System.out.println(names[i]);
}
5.一维数组元素的默认初始化值
数组元素是整型:0
数组元素是浮点型:0.0
数组元素是char型:0或’\u0000’,而非’0’
数组元素是boolean型:false
数组元素是引用数据类型:null
例题
题目:
从键盘读入学生成绩,找出最高分,并输出学生成绩等级。
成绩>=最高分-10 等级为’A’
成绩>=最高分-20 等级为’B’
成绩>=最高分-30 等级为’C’
其余 等级为’D’
代码实现:
package test;
/*
* 2. 从键盘读入学生成绩,找出最高分,并输出学生成绩等级。
成绩>=最高分-10 等级为’A’
成绩>=最高分-20 等级为’B’
成绩>=最高分-30 等级为’C’
其余 等级为’D’
提示:先读入学生人数,根据人数创建int数组,存放学生成绩。
*
*/
import java.util.Scanner;
public class Arraydemo1 {
public static void main(String[] args) {
//1.使用Scanner,读取学生个数
Scanner scanner=new Scanner(System.in);
System.out.println("请输入学生个数");
int number=scanner.nextInt();
//2.创建数组,存储学生成绩:动态初始化
int[] scores=new int[number];
//3.给数组中的元素赋值
int maxscore=0;
System.out.println("请输入学生分数");
for(int i=0;i<scores.length;i++) {
scores[i] = scanner.nextInt();
//4.获取数组中的元素的最大值:最高分
if(maxscore<scores[i]) {
maxscore=scores[i];
}
}
//5.根据每个学生成绩与最高分的差值,得到每个学生的等级,并输出等级和成绩
char level;
for(int i=0;i<scores.length;i++) {
if(maxscore-scores[i]<10) {
level='A';
}
else if(maxscore-scores[i]<20) {
level='B';
}
else if(maxscore-scores[i]<30) {
level='C';
}
else {
level='D';
}
System.out.println("student "+number+"score is "+scores[i]+"grade is "+level);
}
}
}
笔记来源:尚硅谷