一数维组
package com.atguigu.java;
/*
* 1.数组相关概念
* >数组名
* >数组元素
* >角标、下标、索引
* >数组的长度,元素的个数
*
* 2.数组的特:
* 数组是有序的
* 数组属于引用数据类型的变量,数组的元素可以是基本数据类型,也可以是引用数据类型
* 创建数组对象会在内存中开辟一整块连续空间
* 数组长度一旦确定,就不能修改
*
* 3.数组的分类:
* 按照维度:一维数组、二维数组、……
* 按照数组元素:基本数据类型、引用数据类型
*
* 4.一维数组的使用
* 1)一维数组的声明和初始化
* 2)如何调用数组的指定位置的元素
* 3)如何获取数组长度
* 4)如何遍历数组
* 5)数组元素的默认初始化
* 6)数组的内存解析
*
*
*/
public class ArrayTest {
public static void main(String[] args) {
//1。一维数组的生命和初始化
int num ;//声明
num = 10;//初始化
int num1 = 101;//声明和初始化合一
int[] ids;//声明
//静态初始化:数组的初始化和数组元素的赋值操作同时进行
ids = new int[]{10,11,13,14};
//动态初始化:数组的初始化和数组元素的赋值操作分开进行
String[] name = new String[5];
//2.如何调用数组的指定位置的元素:通过角标的方式调用
//数组的角标(索引)从0开始,到数组的长度-1结束。
name[0] = "王明";
name[1] = "lisi";
name[2] = "wangwu";
name[3] = "aa";
name[4] = "bb";
//3.如何获取数组长度
System.out.println(name.length);
System.out.println(ids.length);
//4.如何遍历数组
for(int i = 0;i<name.length;i++) {
System.out.println(name[i]);
}
//5.数组元素的默认初始化
// 数组元素是整型:0
// 数组元素是浮点型:0.0
// 数组元素是char型:0或"u0000",而非‘0’
// 数据类型是boolean型:false
// 数据类型是引用数据类型:null
int[] arr = new int[4];
for(int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
/*
* 1.数组相关概念
* >数组名
* >数组元素
* >角标、下标、索引
* >数组的长度,元素的个数
*
* 2.数组的特:
* 数组是有序的
* 数组属于引用数据类型的变量,数组的元素可以是基本数据类型,也可以是引用数据类型
* 创建数组对象会在内存中开辟一整块连续空间
* 数组长度一旦确定,就不能修改
*
* 3.数组的分类:
* 按照维度:一维数组、二维数组、……
* 按照数组元素:基本数据类型、引用数据类型
*
* 4.一维数组的使用
* 1)一维数组的声明和初始化
* 2)如何调用数组的指定位置的元素
* 3)如何获取数组长度
* 4)如何遍历数组
* 5)数组元素的默认初始化
* 6)数组的内存解析
*
*
*/
public class ArrayTest {
public static void main(String[] args) {
//1。一维数组的生命和初始化
int num ;//声明
num = 10;//初始化
int num1 = 101;//声明和初始化合一
int[] ids;//声明
//静态初始化:数组的初始化和数组元素的赋值操作同时进行
ids = new int[]{10,11,13,14};
//动态初始化:数组的初始化和数组元素的赋值操作分开进行
String[] name = new String[5];
//2.如何调用数组的指定位置的元素:通过角标的方式调用
//数组的角标(索引)从0开始,到数组的长度-1结束。
name[0] = "王明";
name[1] = "lisi";
name[2] = "wangwu";
name[3] = "aa";
name[4] = "bb";
//3.如何获取数组长度
System.out.println(name.length);
System.out.println(ids.length);
//4.如何遍历数组
for(int i = 0;i<name.length;i++) {
System.out.println(name[i]);
}
//5.数组元素的默认初始化
// 数组元素是整型:0
// 数组元素是浮点型:0.0
// 数组元素是char型:0或"u0000",而非‘0’
// 数据类型是boolean型:false
// 数据类型是引用数据类型:null
int[] arr = new int[4];
for(int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
一维数组的内存解析(粗略)
package com.atguigu.exec;
import java.util.Scanner;//导包快捷键 ctrl+shift+o
/*
* 从键盘读入学生成绩,找出最高分,并输出学生成绩等级。
* >成绩>=最高分-10 等级为A
* >成绩>=最高分-20 等级为B
* >成绩>=最高分-30 等级为C
* >其余 等级为D
*
*
*/
public class ArrayDemo {
public static void main(String[] args) {
//1.使用Scanner,读取学生个数
System.out.println("请输入学生人数:"); //任何位置使光标换行:shift+回车
Scanner scan = new Scanner(System.in); //使光标在上面一行换行:ctrl+shift+回车
int number = scan.nextInt(); //可以scan.nextInt();+ctrl+1
//2.创建数组,存储学生成绩,动态初始化
int[] num = new int[number];
//3.给数组中的元素赋值
System.out.println("请输入"+number+"个成绩");
for(int i = 0;i < number;i++) {
num[i] = scan.nextInt();
}
//4.获取数组中的元素的最大值
int max = num[0];
for(int i = 1; i < number; i++) {
if(num[i]>max) {
max = num[i];
}
}
System.out.println("最高分是:" + max);
//3.4 优化
/*
int max = num[0];
System.out.println("请输入"+number+"个成绩");
for(int i = 0;i < number;i++) {
num[i] = scan.nextInt();
if(num[i]>max) {
max = num[i];
}
}
*/
//5.根据每个学生成绩与最高分的差值,得到每个学生等级
for(int i = 0;i < number; i++) {
if((max-num[i]) <= 10) {
System.out.println("student "+i+" score is "+num[i]+" grade is "+"A");
}else if((max-num[i]) <= 20) {
System.out.println("student "+i+" score is "+num[i]+" grade is "+"B");
}else if((max-num[i]) <= 30) {
System.out.println("student "+i+" score is "+num[i]+" grade is "+"C");
}else {
System.out.println("student "+i+" score is "+num[i]+" grade is "+"D");
}
}
//视频老师
char level;
for(int i = 0;i < number; i++) {
if((max-num[i]) <= 10) {
level = 'A';
}else if((max-num[i]) <= 20) {
level = 'B';
}else if((max-num[i]) <= 30) {
level = 'C';
}else {
level = 'D';
}
System.out.println("student "+i+" score is "+
num[i]+" grade is "+level);
}
}
/*
* 从键盘读入学生成绩,找出最高分,并输出学生成绩等级。
* >成绩>=最高分-10 等级为A
* >成绩>=最高分-20 等级为B
* >成绩>=最高分-30 等级为C
* >其余 等级为D
*
*
*/
public class ArrayDemo {
public static void main(String[] args) {
//1.使用Scanner,读取学生个数
System.out.println("请输入学生人数:"); //任何位置使光标换行:shift+回车
Scanner scan = new Scanner(System.in); //使光标在上面一行换行:ctrl+shift+回车
int number = scan.nextInt(); //可以scan.nextInt();+ctrl+1
//2.创建数组,存储学生成绩,动态初始化
int[] num = new int[number];
//3.给数组中的元素赋值
System.out.println("请输入"+number+"个成绩");
for(int i = 0;i < number;i++) {
num[i] = scan.nextInt();
}
//4.获取数组中的元素的最大值
int max = num[0];
for(int i = 1; i < number; i++) {
if(num[i]>max) {
max = num[i];
}
}
System.out.println("最高分是:" + max);
//3.4 优化
/*
int max = num[0];
System.out.println("请输入"+number+"个成绩");
for(int i = 0;i < number;i++) {
num[i] = scan.nextInt();
if(num[i]>max) {
max = num[i];
}
}
*/
//5.根据每个学生成绩与最高分的差值,得到每个学生等级
for(int i = 0;i < number; i++) {
if((max-num[i]) <= 10) {
System.out.println("student "+i+" score is "+num[i]+" grade is "+"A");
}else if((max-num[i]) <= 20) {
System.out.println("student "+i+" score is "+num[i]+" grade is "+"B");
}else if((max-num[i]) <= 30) {
System.out.println("student "+i+" score is "+num[i]+" grade is "+"C");
}else {
System.out.println("student "+i+" score is "+num[i]+" grade is "+"D");
}
}
//视频老师
char level;
for(int i = 0;i < number; i++) {
if((max-num[i]) <= 10) {
level = 'A';
}else if((max-num[i]) <= 20) {
level = 'B';
}else if((max-num[i]) <= 30) {
level = 'C';
}else {
level = 'D';
}
System.out.println("student "+i+" score is "+
num[i]+" grade is "+level);
}
}
}