4.一维数组

一数维组
package com.atguigu.java;
/*
 * 1.数组相关概念
 * >数组名
 * >数组元素
 * >角标、下标、索引
 * >数组的长度,元素的个数
 *
 * 2.数组的特点:
 * 数组是有序的
 * 数组属于引用数据类型的变量,数组的元素可以是基本数据类型,也可以是引用数据类型
 * 创建数组对象会在内存中开辟一整块连续空间
 * 数组长度一旦确定,就不能修改
 *
 * 3.数组的分类:
 * 按照维度:一维数组、二维数组、……
 * 按照数组元素:基本数据类型、引用数据类型
 *
 * 4.一维数组的使用
 * 1)一维数组的声明和初始化
 * 2)如何调用数组的指定位置的元素
 * 3)如何获取数组长度
 * 4)如何遍历数组
 * 5)数组元素的默认初始化
 * 6)数组的内存解析
 *
 *
 */
 1 public class ArrayTest {
 2  public static void main(String[] args) {
 3   
 4   //1。一维数组的声明和初始化
 5   int num ;//声明
 6   num = 10;//初始化
 7   int num1 = 101;//声明和初始化合一
 8   
 9   int[] ids;//声明
10   //静态初始化:数组的初始化和数组元素的赋值操作同时进行
11   ids = new int[]{10,11,13,14};
12   
13   //动态初始化:数组的初始化和数组元素的赋值操作分开进行
14   String[] name = new String[5];
15   
17   //2.如何调用数组的指定位置的元素:通过角标的方式调用
18   //数组的角标(索引)从0开始,到数组的长度-1结束。
19   name[0] = "王明";
20   name[1] = "lisi";
21   name[2] = "wangwu";
22   name[3] = "aa";
23   name[4] = "bb";
24   
25   //3.如何获取数组长度
26   System.out.println(name.length);
27   System.out.println(ids.length);
28   
29   //4.如何遍历数组
30   for(int i = 0;i<name.length;i++) {
31    System.out.println(name[i]);
32   }
33   
34   //5.数组元素的默认初始化
35   //    数组元素是整型:0
36   //    数组元素是浮点型:0.0
37   //    数组元素是char型:0或"\u0000",而非‘0’
38   //    数据类型是boolean型:false
39   
40   //   数据类型是引用数据类型:null 
41   int[] arr = new int[4];
42   for(int i = 0; i < arr.length; i++) {
43    System.out.println(arr[i]);
44   }
45   
46  }
47  
48 }
一维数组的内存解析(粗略)
 

 练习

 1 package com.atguigu.exec;
 2 import java.util.Scanner;//导包快捷键 ctrl+shift+o
 3 /*
 4  * 从键盘读入学生成绩,找出最高分,并输出学生成绩等级。
 5  * >成绩>=最高分-10  等级为A
 6  * >成绩>=最高分-20  等级为B
 7  * >成绩>=最高分-30  等级为C
 8  * >其余  等级为D  
 9  */
10 public class ArrayDemo {
11  
12  public static void main(String[] args) {
13   
14   //1.使用Scanner,读取学生个数
15   System.out.println("请输入学生人数:");   //任何位置使光标换行:shift+回车 
16   Scanner scan = new Scanner(System.in);      //使光标在上面一行换行:ctrl+shift+回车
17   int number = scan.nextInt();                //可以scan.nextInt();+ctrl+1
18   
19  //2.创建数组,存储学生成绩,动态初始化
20   int[] num = new int[number];
21   
22   //3.给数组中的元素赋值
23   System.out.println("请输入"+number+"个成绩");
24   for(int i = 0;i < number;i++) {
25    num[i] = scan.nextInt();  
26   }
27   
28   //4.获取数组中的元素的最大值
29   int max = num[0];
30   for(int i = 1; i < number; i++) {
31    if(num[i]>max) {
32     max = num[i];
33    }
34   }
35   System.out.println("最高分是:" + max);
36   //3.4 优化
37   /*
38     int max = num[0];
39     System.out.println("请输入"+number+"个成绩");
40     for(int i = 0;i < number;i++) {
41        num[i] = scan.nextInt();
42        if(num[i]>max) {
43             max = num[i];
44        }
45     }    
46    */
47   //5.根据每个学生成绩与最高分的差值,得到每个学生等级
48   for(int i = 0;i < number; i++) {
49    if((max-num[i]) <= 10) {
50     System.out.println("student "+i+" score is "+num[i]+" grade is "+"A");
51    }else if((max-num[i]) <= 20) {
52     System.out.println("student "+i+" score is "+num[i]+" grade is "+"B");
53    }else if((max-num[i]) <= 30) {
54     System.out.println("student "+i+" score is "+num[i]+" grade is "+"C");
55    }else {
56     System.out.println("student "+i+" score is "+num[i]+" grade is "+"D");
57    }
58   }
59   //视频老师
60   char level;
61   for(int i = 0;i < number; i++) {
62    if((max-num[i]) <= 10) {
63     level = 'A';
64    }else if((max-num[i]) <= 20) {
65     level = 'B';
66    }else if((max-num[i]) <= 30) {
67     level = 'C';
68    }else {
69     level = 'D';
70    }
71    System.out.println("student "+i+" score is "+
72         num[i]+" grade is "+level);
73   } 
74  }
75 }
76  

 

posted @ 2020-02-26 01:37  孫sun  阅读(185)  评论(0编辑  收藏  举报