day08_数组

今日内容

零、 复习昨日
一、作业
二、数组

零、 复习昨日

方法/函数是什么?

  • 方法是一段代码,用来执行

方法的作用是什么?

  • 完成一些功能
  • 减少代码重复

什么时候需要方法

  • 重复代码,可以抽取成方法,反复调用
  • 带某个代码内内容太多,也可以抽取成方法,去调用

方法的参数列表是什么意思?怎么定义的?

  • 参数,就是方法执行所需要的东西
  • 参数,就是像变量一样,需要声明,数据类型 变量名
    add(int a,int b)
  • 参数,好处是可以方法变灵活

方法如何调用?

  • 位置: 在方法(不一定主方法)内调用其他方法
  • 如何调用?: 通过方法名()来调用,
    方法如果有参数,必须传入值,add(1,2)
    方法如果有返回值,可以接收返回值也可以不接受

方法的返回值什么意思?

  • 返回值就是方法执行后返回数据

为什么要返回数据?

  • 返回数据不是为了输出语句输出的
  • 而是为了后续接着使用
  • 要不要给方法设计返回值? 就是看方法运行的结果后续有没有人用

方法的返回值返回给谁?

  • 谁调用返回给谁

一、作业


二、数组(array)

java的数据类型

  • 基本类型
  • 引用类型
    • 数组
    • 接口

3.1 数组

什么是数组? 存储多个数据

为什么需要数组? 存储全班,全公司,全部员工等等场景需要存储多个数据,但是变量一次存储一个数据,此时需要使用数组存储多个数据

ps: 数组中存储的数据叫做数组的元素(element)


数组的特点:

  • 数组存储多个数据,但是容量/大小/长度是固定
  • 数组只能存储同一种数据类型的数据

day08_数组_第1张图片

怎么使用数组?

  • 声明/定义 数据类型[] 数组名;
  • 创建出数组
    • new 数据类型[长度];
    • new 数据类型[]{元素1,元素2,...}
  • 使用数组
    • 存储数据
    • 取出数据

3.2 演示

数组声明

// 数据类型[] 数组名;
int[] arr;
double[] arr2;
String[] arr3;

创建数组

// 数组名 = new 数据类型[长度];
arr = new int[3];

day08_数组_第2张图片

使用数组

  • 取值
  • 存储

取值


day08_数组_第3张图片

赋值/存值

    public static void main(String[] args) {
        // int a = 1;
        // 声明
        int[] arr;
        double[] arr2;
        String[] arr3;

        // 创建数组
        arr = new int[3];
        arr2 = new double[4];
        arr3 = new String[5];

        // 一般情况下,会连写
        int[] arr4 = new int[3];

        /**
         * 使用数组
         * - 取值
         *    数据类型 变量 = 数组名[下标];
         *    下标是索引,是数组中存储元素的编号,从0开始
         * - 赋值
         *    数组名[下标] = 值;
         */
        // 取值
        int a1 = arr4[0];
        int a2 = arr4[1];
        int a3 = arr4[2];
        // 创建数组默认值是空,整型int默认值是0
        // double数组默认值0.0
        // String数组默认值null
        System.out.println(a1 );
        System.out.println(a2 );
        System.out.println(a3 );

        // 赋值(向数组存放元素)
        arr4[0] = 1; // 向数组arr4的第一个位置存放元素1
        arr4[1] = 2;
        arr4[2] = 3;

        // 再取出查看值
        int a11 = arr4[0];
        System.out.println(a11 );

        System.out.println(arr4[1] );
        System.out.println(arr4[2] );
    }

day08_数组_第4张图片

练习: 创建一个长度为3的字符串数组,存储3人名字,然后再取出

    public static void main(String[] args) {

        // 练习: 存储5个同学的年龄,并输出
        // 创建容量/长度为5的数组
        int[] ageArr = new int[5];

        // 存储5个年龄
        ageArr[0] = 18;
        ageArr[1] = 19;
        ageArr[2] = 20;
        ageArr[3] = 21;
        ageArr[4] = 21;

        // 取出5人的年龄
        System.out.println(ageArr[0] );
        System.out.println(ageArr[1] );
        System.out.println(ageArr[2] );
        System.out.println(ageArr[3] );
        System.out.println(ageArr[4] );

        // 创建数组存储3人成绩(小数)并输出
        double[] scoreArr = new double[3];
        scoreArr[0] = 98.2;
        scoreArr[1] = 68.2;
        scoreArr[2] = 58.2;
        System.out.println(scoreArr[0] );
        System.out.println(scoreArr[1] );
        System.out.println(scoreArr[2] );


        // 创建数组存储3人姓名并输出
        String[] nameArr = new String[3];
        nameArr[0] = "老王";
        nameArr[1] = "老李";
        nameArr[2] = "老黑";
        System.out.println(nameArr[0] );
        System.out.println(nameArr[1] );
        System.out.println(nameArr[2] );
    }

3.3 数组的创建方式

3.3.1 动态创建

数据类型[] 数组名 = new 数据类型[长度];

int[] arr = new int[3]; 只指定长度/容量,这样创建出的数组元素是默认值,还需要代码中手动再一个个向数组存值 --> 随着程序运行才动态的给数组赋值


动态创建是:指定长度,不指定元素

    public static void main(String[] args) {
        // 动态创建
        // 动态是指程序运行过程中才会给数组赋值
        // 即刚开始只有长度,后续再赋值
        int[] arr = new int[3];
    }

3.3.2 静态创建

在创建出数组时,数组内已经存储好了数据.

数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3,....};


静态创建: 不指定长度,直接指定元素

        // 在创建数组时直接给定元素值,不给定长度
        // 数组有属性可以获得数组长度
        // 即创建出的数组内部直接有指定值
        String[] arr2 = new String[]{"一","二","三","四"};
        System.out.println(arr2[0] );// 一

3.3.3 静态创建的简化格式

标准格式: 数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};

简化写法: 数据类型[] 数组名 = {元素1,元素2,…};

       // 静态的简化格式(常用)
        String[] arr3 = {"一","二","三","四"};
        System.out.println(arr3[2] );// 三
        arr3[2] = "叁";
        System.out.println(arr3[2] );
       /**
         * 总结:
         * - 当存储的元素未知,使用动态创建,指定长度不指定元素
         * - 当存储时元素已知,使用静态简化创建,给定元素不给长度
         */

3.4 数组的长度

每个数组都有一个属性length,可以调用该属性获得长度

数组名.length

        int[] arr4 = new int[3];
        int l4 =arr4.length;
        System.out.println(l4 );// 3

        int[] arr5 = {11,22,33,44};
        System.out.println(arr5.length );// 4

        // ps: 数组最大下标是 = 长度-1

三、数组遍历【重点】

遍历: 将数组中的元素一个一个的找到

练习: 遍历输出数组元素

     public static void main(String[] args) {
        // 遍历输出元素
        // i是下标,从0开始,下标最大到长度-1
        int[] arr = {11,22,33,44,55,66,77,88};
        for (int i = 0;i < arr.length;i++) {
            System.out.println(arr[i] );
        }
     }

四、练习【重点】

1、从键盘录入五个名字到数组中,遍历数组输出这五个名字

// 第一题:
    // 从键盘录入五个名字到数组中,遍历数组输出这五个名字
    public static void inputOutputName() {
        Scanner scanner = new Scanner(System.in);
        String[] nameArr = new String[5];

        // 一个一个的存储
        for (int i = 0;i < nameArr.length;i++) {
            System.out.print("请输入第"+(i+1)+"个人名:" );
            String name = scanner.nextLine();
            nameArr[i] = name;
        }
        System.out.println("----- 开始遍历 -----" );
        // 一个一个遍历输出
        for (int i = 0; i < nameArr.length; i++) {
            System.out.println(nameArr[i] );
        }
    }

2、给定一个数组,求数组的最大值

    public static void printMax() {
        int[] arr = {1,3,9,7,5,8,6};
        // 比武招亲
        int max = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] > max) {
                max = arr[i];
            }
        }
        System.out.println("数组最大值是: " + max );
    }

3、给定一个数组,求数组的最小值


4、给定一个数组,求数组的平均值

  • 平均值就需要求和,个数(数组.length)
  • 求和就是sum,一个个累加
  • 就是循环
    public static void avg() {
        int[] arr = {1,2,3,4,5,6};
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        double avg = sum * 1.0 / arr.length;
        System.out.println(avg );
    }

改造: 设计方法,可以对任何整数数组返回平均值

ps: 方法参数列表设计成可以传入数组


就需要求和,个数(数组.length)

  • 求和就是sum,一个个累加
  • 就是循环
    public static void avg() {
        int[] arr = {1,2,3,4,5,6};
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        double avg = sum * 1.0 / arr.length;
        System.out.println(avg );
    }

改造: 设计方法,可以对任何整数数组返回平均值

ps: 方法参数列表设计成可以传入数组


你可能感兴趣的:(#,Java2313,python,linux,数据库)