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

Java系列文章目录


在这里插入图片描述

Write once,Runanywhere.

随机数生成的几种方法

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

在这里插入图片描述

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

文章目录

  • Java系列文章目录
  • 1.通过Math类
    • 1.1 JAVA库里的使用说明:
    • 1.2 使用方法:
      • 1.2.1 生成浮点数[0.0,1.0)的浮点数: Math.random()
      • 1.2.2 生成[min,max)的double类型的浮点数: (Math.random()*(max-min)+min)
      • 1.2.3 生成整数,需要强制类型转换:(int) (Math.random()*(max-min)+min)
  • 2.通过Random类
    • 2.1 我们直接看使用方法,看代码:
    • 2.2注意随机数的生成种子
  • 3.猜数字游戏
    • 3.1 使用Math类实现
    • 3.2 使用Random类实现



1.通过Math类

1.1 JAVA库里的使用说明:

JAVASE语法零基础——随机数的生成与猜数字游戏的实现_第1张图片
英文所描述的内容:从这个随机数生成器序列中返回下一个伪随机、均匀分布的双精度值,该值介于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);

运行结果:
JAVASE语法零基础——随机数的生成与猜数字游戏的实现_第2张图片

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);

运行结果:
JAVASE语法零基础——随机数的生成与猜数字游戏的实现_第3张图片

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

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

运行结果:
JAVASE语法零基础——随机数的生成与猜数字游戏的实现_第4张图片

2.通过Random类

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

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

运行结果:
JAVASE语法零基础——随机数的生成与猜数字游戏的实现_第5张图片
JAVASE语法零基础——随机数的生成与猜数字游戏的实现_第6张图片

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();

不同次的运行结果:
在这里插入图片描述
JAVASE语法零基础——随机数的生成与猜数字游戏的实现_第7张图片

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("猜大了");
            }
        }
    }

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

在这里插入图片描述

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

你可能感兴趣的:(JAVASE,0基础入门,java,开发语言,后端)