JavaSE_2.1——数组【概念、创建、内存分配】

今天是练习数组的第一天,后续继续

1、数组的定义以及声明 

1.数组的定义:一组能够存储相同数据类型值的变量的集合

2.数组的赋值方式:

New关键字:表示创建一个数组;

(1)使用默认的初始值来初始化数组中的每一个元素

语法:数组元素类型[ ] 数组名 = new 数组元素类型[数组中元素的个数(数组的长度)]

例如:int[ ]scores = new int[3];

(2)先声明,然后再赋予默认的初始值

语法:数组元素类型[ ] 数组名;

数组名 = new 数组元素类型[数组中元素的个数]

                例如:int[ ]scores; 

                          scores = new int [3];

(3)先声明,,然后再使用指定的值进行初始化

语法:数组元素类型[ ] 数组名 = new 数组元素类型[ ]{元素1,元素2……}

如:int [ ]scores = new int[ ]{56,87,65};

(4)将第三种写法可以简化为(使用数组常量给数组进行赋值)

语法:数组元素类型[ ] 数组名 = {元素1,元素2……}

如:int [ ]scores = {45,56,89};

(5)int[ ] arr         表示定义一个int类型的数组arr

         Int  arr[ ]         表示定义一个int类型的变量,变量名是arr数组

2、数组的长度

求数组的长度:数组名.length

通过下标来访问数组中的元素。下标:从o开始,到数组长度-1

                如: int[] scores = {89,90};

访问最后一个元素值:

int lastElement = scores[scores.length-1];

3、数组的遍历

遍历:依次取出数组中的每一个元素。

3.1  遍历方式一:普通的for循环

语法:

for(int i =0; i<数组的长度;i++){

    //i:循环变量,同样:也是数组的下标(取值范围[0,数组长度])

    数组中元素的类型 变量=数组名[i];

}

3.2  增强for循环与可变参数

(1)JDK1.5以后Java新增foreach循环和可变参数。遍历方式二:使用增强for循环【foreach循环】

语法:

​​​​​​​for(数组中元素的类型 变量:数组名){

    数组中元素的类型 临时变量=变量;

}

(2)结合方法的定义,可以用可变参数来代替数组作为参数。

public static void print(int ...变量名){

    //可变参数在使用时只能作为数组使用;而且只能是参数列表中的最后一个

}

4、使用数组时要注意的两个异常:

(1)NullPointerException(空指针异常) java . lang. NullPointerException

出现该异常的情况:当一个变量为null(没有赋值时)时,我们去调用了该变量的属性和方法

(2)数组下标越界异常:java . lang. ArrayIndexoutofBoundsException

比如:for(int i=0;i<=x.length;i++)时,将会出现错误

5、Random的作用和使用步骤

作用:用于产生一个随机数

使用步骤:

①导包:import java.util .Random;导包的动作必须出现在类定义的上面

②创建对象:Random r = new Random( ) ;

上面这个格式里面,r是变量名,可以变,其他的都不允许变

③获取随机数:int number = r.nextInt(10);

//获取数据的范围:[0,10)包括0 ,不包括10上面这个格式里面,number是变量名,可以变,数字10可以变。其他的都不允许变

import java.util.Scanner;
import java.util.Random;

public class text5{
    public static void main(String[] args){
        for(int hour=0;hour<=2; hour++){ //循环语句的嵌套;
            for(int minute = 1;minute <5;minute++){
                System.out.println(hour+"时"+minute+"分");
            }

            System.out.println("---------");

        }

        Random r = new Random(); //注意大小写;
        for (int i= 1;i<=5;i++){
            int number = r.nextInt(10); //10以内的随机数;
            System.out.println(number);
        }

        //从键盘输入一个数,判断数组中是否包含此数(随机数);

        int[] num = new int[5]; //创建一个长度为5的数组;

        int len = num.length;

        Random a = new Random(); //创建一个随机数给a;

        for(int i=0;i<len;i++){
            num[i] = a.nextInt(50); //将随机数[0.50)以内的数保存到数组中;
        }

        Scanner input = new Scanner(System.in); //键盘输入一个数;
        System.out.print("请输入您要猜的数(50以内):");
        int userNum = input.nextInt();


        boolean flag = false;
        
        for(int x=0;x<len;x++){
            if(userNum==x){ //判断输入的数字和数组中的数字是否相等;
                flag = true;
                break;
            }

        }

        if(flag){
            System.out.println("恭喜你,猜对了");    
        }else{
            System.out.println("不好意思,猜错了");
    
        }

    }

}

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-今非昔比°

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值