随机数和数组

 基础学习第四天了,今天的核心内容

  1,随机数Random

  2,数组

  3,二维数组


一:随机数Random

   概述

  用于产生一个随机数使用步骤(和Scanner类似)

  使用方法

导包

 import java.util.Random;

 创建对象

 Random r = new Random();

获取随机数

 int number = r.nextInt(10);

产生的数据在0到10之间,包括0,不包括10。

 括号里面的10是可以变化的,如果是100,就是0-100之间的数据

 例题

 获取0-10之间的随机数

  public class Text01Random {
public static void main(String[] args) {

// 创建对象

Random r = new Random();


for (int x = 0; x < 10; x++) {

// 获取随机数

int number = r.nextInt(10);

// 输出随机数

System.out.println("number:" + number);

}

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



// 如何获取到一个1-100之间的随机数呢?

int i = r.nextInt(100) + 1;

System.out.println("i:" + i);

}

}  

            需要大家注意一点,Random和Scanner一起在代码中出现时候要注意一个BUG,就是要分清是否讲两个语法都在代码中定义过变量,如果需要手动录入一个数字进行代码编辑时候,如果 没有对输入的数字提前进行打印提示,那么在全屏下运行该代码,会找不到控制台,所以要提前在eclipse里打开控制台,这样带代码RUN以后直接输入一个数字即可

用一个例子给大家分一下这个代码吧课上学的例题

public classDemo02Random {

    publicstatic voidmain(String[ ] args) {

        // 系统产生一个随机数1-100之间的。

        Random r= new Random();

        intnumber = r.nextInt(100)+ 1;

 

        while(true){

            // 键盘录入我们要猜的数据

            Scanner sc= new Scanner(System.in);

            System.out.println("请输入你要猜的数字(1-100)");

            intguessNumber = sc.nextInt();

   

            // 比较这两个数据(if语句)

            if(guessNumber > number){

                System.out.println("你猜的数据" + guessNumber+ "大了");

            } elseif (guessNumber< number) {

                System.out.println("你猜的数据" + guessNumber+ "小了");

            } else{

                System.out.println("恭喜你,猜中了");

                break;

            }

        }

    }

}

这里面的BUG再后续习题课时候分清讲解给大家,目前大家只要看到两个语法的用法就OK,保证以后打代码不会有乱套和BUG出现就好.


数组

那么数组到底是什么呢?有什么特点呢?两句话形容:

数组是存储多个变量(元素)的东西(容器)

这多个变量的数据类型要一致

数组的格式

格式1:数据类型[] 数组名;

格式2:数据类型数组名[];

初始化

 Java中的数组必须先初始化,然后才能使用。

 所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。

数组的初始化方式

 动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。

静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度。

如果想访问数组内的元素,那么不能直接访问,需要通过栈内的数组地址,然后通过地址找到堆内的相关数组元素,

而数组内的元素都是有代号的,这个代号我们叫做索引,在索引使用中常常出现两种BUG,这两种BUG是

1 数组索引越界异常ArrayIndexOfBoundsException

访问到了数组中的不存在的索引时发生。

2空指针异常NullPointerException

数组引用没有指向对象,却在操作对象中的元素时。

为什么要记住这些小问题呢?

因为写程序不仅仅是把代码写出来,还包括出现问题后要能够及时的把问题解决。

而排错也应该是我们的基本功。所以,我们也应该记住一些常见的问题,以及出错原因和解决方案。

下面通过数组我们求一下下面数字的最大值


public classDemo08ArrayTest {

    publicstatic voidmain(String[] args) {

        //定义数组

        int[]arr = {12,98,45,73,60};

       

        //定义参照物

        intmax = arr[0];

       

        //遍历数组,获取除了0以外的所有元素,进行比较

        for(int x=1; x<arr.length; x++) {

            if(arr[x] > max) {

                max= arr[x];

            }

        }

       

        System.out.println("数组中的最大值是:"+max);

    }

}

这里将数组定义成一个静态数组,如果用之前的for循环也可以找到该题目答案,但是如果用数组去循环判断

语法简单,代码也清晰.建议使用

 

感冒交叉感染了大哭大哭大哭大家也要注意防止感冒啊,好难受,小白今天早点休息了,已经将今天的核心知识点就在这里阐述给大家了,希望其他小白也在看视频或者授课之后可以一起讨论.





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值