2022/07/14 学习笔记 (day07)数组

34 篇文章 0 订阅

目录

一.数组概念:

         1.1 容器概念:

         1.2 数组概念:

         1.3 数组的定义:

         1.4数组访问:

         1.5数组常见操作:

二.数组练习: 

         1. 需求:从数组所有元素中找出最大值:

         2.需求:输出一个由“*”组成的5*5的正方形:

                  3.简易计算器:

         4.猜一猜:

三.二维数组:

        3.1语法:


保持谦卑,虚心学习,向前走,向上看

一.数组概念:

        1.1 容器概念:

                衣柜:衣服全部存储到一个容器中

        1.2 数组概念:

                数组是存储数据长度固定的容器,保证多个数据的数据类型要一致

        1.3 数组的定义:

                        方式一:

格式:

        数组存储元素的数据类型 [ ]     数组名字=new      数据存储元素的数据类型[长度]

                        int  [  ] arr = new   int [ 3 ]

                        数组是定长  length [3]

                        数组名——>变量名 通过数组名来操作数组

                        方式二: 

格式:

         数组存储元素的数据类型 [ ]    数组名字=new   数据存储元素的数据类型  [  ]{元素1,元素2,元素3}

                        int [ ] arr = new int [ ]{10,20,30}

                        方式三:

格式:

        数组存储元素的数据类型 [ ]   数组名字 = {元素1,元素2,元素3}

                        int [ ] arr = {10,20,30}

         1.4数组访问:

        

 索引:每一个存储到数组中的元素,都会自动拥有一个编号,从0开始,这个自动编码叫做数组索引(index),可以通过数组索引(index,下标)访问的数组中的元素

格式:数组名 [ 索引 ]

                String [ ] strs={"张三","李四","王五"};

                System.out.println(strs [ 0 ])

                System.out.println(strs [ 1 ])

                System.out.println(strs [ 2 ])

长度: length

                System.out.println(strs .length)

赋值: 

                strs [ 1 ] = "赵六";

 特点:

                数组长度在程序运行阶段不可改变

                数组当中的数据,数据类型必须统一

                直接打印数组名称获得的是地址的哈希值

使用建议:

                1.如果不确定数组内容建议使用动态初始化

                2.如果确定数组内容建议使用静态初始化

        1.5数组常见操作:

                1.5.1数组遍历:

                //for

                        for ( int i = 0; i < strs.length; i++) {

                                System.out.println(strs[i]);

                                }

                1.5.2 数组下标越界:

                访问数组中不存在索引,程序会抛出越界异常ArrayIndexOutOfBoundsException

                 System.out.println(strs[3]);

                 1.5.3数组容易产生空指针异常:

                         String[] strs={"张三","李四","王五"};

                                strs=null;

                                System.out.println(strs[0]);

                                Exception in thread "main" java.lang.NullPointerException

二.数组练习: 

       1. 需求:从数组所有元素中找出最大值:

package Array;

public class Array02 {

    public static void main(String[] args) {
        int[] arr={5,15,2000,10000,4000,1500};
        int max=arr[0];//0-值》
        for (int i = 0; i < arr.length; i++) {
            //如果遍历到元素大于max
            if(arr[i]>max){
            //max记住最大值
            max=arr[i];
            }
          }
    System.out.println("数组中最大值:"+max);
  }
}

         2.需求:输出一个由“*”组成的5*5的正方形:

public class ch04 {
    public static void main(String[] args) {
        /*
         * 正方形
         *           *****
         *           *****
         *           *****
         *           *****
         *           *****/
        for (int i =0 ; i <5; i++) {
            for (int j=0;j<5;j++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

        3.简易计算器:

        需求:                

        从键盘输入两个数字和一个符号
        加减乘除
        打印输出计算结果
        其中主要:
        1.除数不能为0
        2.符号输入不对怎么办?
        3.加速器能不能一直算下去?
import java.util.Scanner;

public class jisuqi {
    public static void main(String[] args) {
        h2://从头开始
        for (; ; ) {
            Scanner src = new Scanner(System.in);
            System.out.println("请输入第一个数字:");
            double num1 = src.nextDouble();//输入第一个数字
            h1://从第二个数字开始
            for (; ; ) {
                System.out.println("请输入第二个数字:");//输入第二个数字
                double num2 = src.nextDouble();
                System.out.println("请输入运算符号:");
                String sep = src.next();
                switch (sep) {
                    case "*":
                        System.out.println(num1 + sep + num2 + "=" + (num1 * num2));
                        break;
                    case "+":
                        System.out.println(num1 + sep + num2 + "=" + (num1 + num2));
                        break;
                    case "-":
                        System.out.println(num1 + sep + num2 + "=" + (num1 - num2));
                        break;
                    case "/":
                        if (num2 == 0) {
                            System.out.println("你的输入有误,除数不能为0,请重新输入第二个数字:");
                            continue h1;//跳转到第二个数字
                        } else {
                            System.out.println(num1 + sep + num2 + "=" + (num1 / num2));
                            break ;
                        }
                }
                h3:for (;;){
                    System.out.println("是否要继续计算? 1.是  2.否(请输入相关序号)");
                    int zxc=src.nextInt();//填入数字
                    if (zxc==1){
                        continue h2;//跳转到头部
                    }else if (zxc==2){
                        System.out.println("谢谢您的使用!");
                        break h2;//跳出全部
                    }else {
                        System.out.println("你的输入有误,请重新输入");
                        continue h3;//排除其他情况
                    }
                }
            }
        }
    }
}

         4.猜一猜:

import java.util.Scanner;

public class guess {
    public static void main(String[] args) {
        /*
        * 猜数字小游戏
        * 键盘输入一个数字用一个变量存起来
        * 猜一猜输入的是什么
        * */
        /*
        * 请输入一个数字
        * 20
        * 数字保存成功,猜猜数字是几*/
        Scanner num = new Scanner(System.in);
        System.out.println("请输入一个数字:");
        int num1 = num.nextInt();
        System.out.println("数字保存成功,请猜猜数字是几?");
        index :for (;;) {
            int num2 = num.nextInt();
            if (num2 > num1) {
                System.out.println("你输入的数字较大,请重新输入");
                continue index;
            } else if (num2 < num1) {
                System.out.println("你输入的数字较小,请重新输入");
                continue index;
            } else {
                System.out.println("恭喜你,你的输入正确");
                break index;

            }
        }
    }
}

三.二维数组:

        3.1语法:

int [  ] arr = new int [ 3 ] [ 2 ]

1.声明   二维数组名字  arr

2.[ 3 ]  代表   三个一维数组-->3行

3.[ 2 ]  代表  2个值   -->列

                列                列
                行arr [ 0 ] [ 0 ]arr [ 0 ] [ 1 ]
                行arr [ 1 ] [ 0 ]arr [ 1 ] [ 1 ]

         3.2 实例:

        需求:公司年销售额求和

        某公司按季度和月份统计数据如下:单位(万元)

                第一季度:22,66,44

                第二季度:77,33,88

                第三季度:25,45,65

                第四季度:11,68,99

                求:总销售额:

package demo02;

public class TwoArray02 {

    public static void main(String[] args) {
        int[][] arrs={{22,66,44},{77,33,88},{24,45,65},{11,66,99}};
        int sum=0;
        for(int i=0;i<arrs.length;i++){//获取每一个一维数组
            for(int j=0;j<arrs[i].length;j++){//获取每一个一维数组的每一元素
                sum+=arrs[i][j];
            }
         }
        System.out.println("本年度销售额是"+sum);
    }
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值