JAVASE语法零基础——随机数的生成与猜数字游戏的实现

Java系列文章目录


在这里插入图片描述

Write once,Runanywhere.🔥🔥🔥

随机数生成的几种方法

💥 💥 💥如果你觉得我的文章有帮助到你,请您点赞评论收藏并转发给你身边的朋友,得到你们支持就是我最大的动力!!!
💥 💥 💥
在这里插入图片描述

🚀🚀🚀 新的知识开始喽🚀🚀🚀
在这里插入图片描述



1.通过Math类

1.1 JAVA库里的使用说明:

在这里插入图片描述
英文所描述的内容:从这个随机数生成器序列中返回下一个伪随机、均匀分布的双精度值,该值介于0.0和1.0之间。
nextDouble的一般约定是伪随机生成并返回一个双精度值,该双精度值(近似地)均匀地从0.0d(包括)到1.0d(不包括)范围内选取。

在这里插入图片描述

小结:

  • 生成的数字类型是double类型
  • 生成的数字范围是0.0(包括)~1.0(不包括)

1.2 使用方法:

1.2.1 生成浮点数[0.0,1.0)的浮点数: Math.random()

double rd = Math.random();
System.out.println(rd);

运行结果:
在这里插入图片描述

1.2.2 生成[min,max)的double类型的浮点数: (Math.random()*(max-min)+min)

生成大于等于min小于max的double型随机数;
生成大于等于min小于max的double型随机数;

double rd = (Math.random()*(10-1)+1);
System.out.println(rd);

运行结果:
在这里插入图片描述

1.2.3 生成整数,需要强制类型转换:(int) (Math.random()*(max-min)+min)

int rd = (int)(Math.random()*(10-1)+1);
        System.out.println(rd);

运行结果:
在这里插入图片描述

2.通过Random类

2.1 我们直接看使用方法,看代码:

import java.util.Random;//导入的包
Random random = new Random();
        int rd = random.nextInt(bound:101);// [0,100)
        System.out.println(rd);

运行结果:
在这里插入图片描述
在这里插入图片描述

2.2注意随机数的生成种子

  • 生成随机数,每次是不一样的,它是根据当前的时间戳来生成的(seed随着随机数在改变)
  • Random random = new Random();括号里没有填写内容时,每次生成的随机数不同,但当括号里填写了一个数字时,这时每次都会根据这个数字(seed 种子)生成一个随机数,称之为伪随机。

这里需要说明的就是这个代码:
1.输入数字边界控制范围

int rd = random.nextInt(bound:101);// [0,100)
生成的数字范围是[0,101),左闭右开,所以在确定范围时需要用到数学加法类凑。
比如范围是[1,100]:int rd = random.nextInt(bound:100)+1;[0,99]–>[1,100]
比如范围是[50,100]:int rd = random.nextInt(bound:51)+50;[0,50]–>[50,100]

2.未输入数字控制范围

int rd = random.nextInt();
会随机生成int范围的数字

int rd = random.nextInt();

不同次的运行结果:
在这里插入图片描述
在这里插入图片描述

3.猜数字游戏

3.1 使用Math类实现

 public static void main(String[] args) {
        Random random = new Random();
        double rd = (Math.random()*(101-1)+1);
         System.out.println(rd);//相当于作弊,提前知道数字
          while(true){
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入你的数字");
            int n = sc.nextInt();
            if(rd==n){
                System.out.println(n+"猜对了");
                break;//猜对了就跳出循环
            }
            else if(n<rd){
                System.out.println("猜小了");
            }
            else{
                System.out.println("猜大了");
            }
        }


    }

3.2 使用Random类实现

 public static void main(String[] args) {
        Random random = new Random();
        int rd = random.nextInt(101);//[0,100)
        while(true){
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入你的数字");
            int n = sc.nextInt();
            if(rd==n){
                System.out.println(n+"猜对了");
                break;//猜对了就跳出循环
            }
            else if(n<rd){
                System.out.println("猜小了");
            }
            else{
                System.out.println("猜大了");
            }
        }
    }

🌏🌏🌏今天的你看懂这里又学到了很多东西吧🌏🌏🌏

在这里插入图片描述

🌔 🌔 🌔下次见喽🌔 🌔 🌔
在这里插入图片描述

评论 114
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

马上回来了

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

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

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

打赏作者

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

抵扣说明:

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

余额充值