day10java学习打卡:一维数组的使用

/*
 * 一.数组的概述
 * 1.数组的理解:数组(Array),是多个相同类型数据按一定顺序排列的集合,
 * 并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。
 * 
 * 2.数组相关的概念:
 * (1)数组名
 * (2)元素
 * (3)角标,下标,索引
 * (4)数组的长度:元素的个数
 * 
 * 3.数组的特点:
 * (1)数组是有序排列的
 * 
 * (2)数组属于引用数据类型类型的变量。数组的元素,既可以是基本数据类型,
 * 也可以是引用数据类型
 * 
 * (3)创建数组对象会在内存中开辟一整块连续的空间
 * 
 * (4)数组的长度一旦确定,就不能修改
 * 
 * 4.数组的分类:
 * (1)按照维数:一元数组,二元数组...
 * (2)按照数组元素的类型:基本数据类型元素的数组,引用数据类型的元素
 * 
 * 5.一维数组的使用:
 * (1)一维数组的声明与初始化
 * (2)如何调用数组指定位置的元素
 * (3)如何获取数组的长度
 * (4)如何遍历数组
 * (5)数组元素的默认初始化值
 * (6)数组的内存解析
 */

public class ArrayTest {
    public static void main(String[] args) {
        
        //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];//长度为5
        //只有数组的初始化,并无进行对数组的元素的赋值操作
        
        //总结:数组一旦初始化完成,数组长度就确定了
        
        
        //2.如何调用数组中指定位置的元素:通过角标的方式调用
        //数组的角标(或索引)从0开始,到数组长度-1结束
        names[0]="王明";
        names[1]="李晓";
        names[2]="张三";
        names[3]="李四";
        names[4]="王麻子";    //数组长度为5
        
        //3.如何获取数组的长度:
        //属性:length
        System.out.println(names.length);
        System.out.println(ids.length);
        
        //4.如何遍历数组
        /*
         * System.out.println(names[0]);
         * System.out.println(names[1]);
         * System.out.println(names[2]);
         * System.out.println(names[3]);
         * System.out.println(names[4]);
         */
        
        for(int i=0;i<names.length;i++) {
            System.out.println(names[i]);
        }
    }
}

/*
 * 数组元素的初始化值
 *     >数组元素是整型(int,short,byte):0
 *     >数组元素为浮点型:0.0
 *     >数组元素为char型:0,而非'0'
 *     >数组元素为boolean型:flase
 *     
 *     >数组元素为引用数据类型:null
 */
public class ArrayTest1 {
    public static void main(String[] args){
        
        //5.数组元素的默认初始化值
        int[] arr=new int[4];
        for(int i=0;i<arr.length;i++) {
            System.out.println(arr[i]);//0 0 0 0
        }
        System.out.println("***************");
        
        short[] arr1=new short[4];
        for(int i=0;i<arr1.length;i++) {
            System.out.println(arr1[i]);//0 0 0 0
        }
        System.out.println("***************");
        
        float[] arr2=new float[4];
        for(int i=0;i<arr2.length;i++) {
            System.out.println(arr2[i]);//0.0 0.0 0.0 0.0
        }
        System.out.println("***************");
        
        char[] arr3=new char[4];
        for(int i=0;i<arr3.length;i++) {
            System.out.println("----"+arr3[i]+"****");
        }
        System.out.println("***************");
        /*
         * ---- ****
         * ---- ****
         * ---- ****
         * ---- ****
         */
        
        if(arr3[0]==0) {
            System.out.println("对喽");
            
        boolean[] arr4=new boolean[5];
        System.out.println(arr4[0]);
        }
        
        System.out.println("********");
        String[] arr5=new String[5];
        System.out.println(arr5[4]);
        
        if(arr5[4]==null) {
            System.out.println("");
        }
    }
}


练习一:
public class ArrayDemo {
    public static void main(String[] args) {
        int[] arr = new int[] { 8, 2, 1, 0, 3 };
        int[] index = new int[] { 2, 0, 3, 2, 4, 0, 1, 3, 2, 3, 3 };
        String tel = "";
        for (int i = 0; i < index.length; i++) {
            tel += arr[index[i]];
        }
        System.out.println("联系方式:" + tel);//18013820100
    }
}


练习二:
从键盘读入学生成绩,找出最高分, 并输出学生成绩等级。 成绩>=最高分-10 等级为’A’ 成绩>=最高分-20 等级为’B’ 成绩>=最高分-30 等级为’C’ 其余 等级为’D’
import java.util.Scanner;
public class ArrayDemo {
    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.给数组中的元素赋值
        System.out.println("请输入"+number+"个学生的成绩");
        for(int i=0;i<scores.length;i++) {
            scores[i]=scanner.nextInt();
        }
        
        //4.获取数组中元素的最大值:最高分
        int maxScore=0;
        for(int i=0;i<scores.length;i++) {
            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"+i+"score is "+
                    scores[i]+",grade is "+level);
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值