Java生成一个随机数

Java生成一个随机数

1、使用Random rd = new Random

java 复制代码
//生成一个0-9的随机数
Random rd = new Random();
int n = rd.nextInt(10);
System.out.println(n);

//1.8版本之后还可以生成11-15的随机数
int m = rd.nextInt(11,16);//左闭右开区间
System.out.println(n);

2、使用Math.random()

java 复制代码
//生成一个0-9的随机数
int n = (int) (Math.random()*10);
System.out.println(n);

3、根据以上可以实现一个随机数字小游戏。

分析:

  • 先生成一个1-100的随机数
  • 再写一个循环,比较输入的数与随机数,一样则跳过

实现代码:

java 复制代码
    public static void main(String[] args) {
        //猜数字
        // int n = (int) (Math.random()*100);
        Random rd = new Random();
        int n = rd.nextInt(100) + 1;
        System.out.println("欢迎来到猜数字小游戏,请输入一个1-100的数字吧!");
        Scanner sc = new Scanner(System.in);
        while (true){
            int x = sc.nextInt();
            if (x == n){
                System.out.println("恭喜你猜对了");
                return;
            }
            if (x > n) {
                System.out.println("猜的太大了,请再猜一次吧");
            }
            if (x < n) {
                System.out.println("猜的太小了,请再猜一次吧");
            }
        }
    }

4、验证码的实现。

通过上述,我们可以衍生思考一下验证码是怎么生成的。

java 复制代码
public static void main(String[] args) {
        //Random随机数类生成验证码
        //先定义验证码的长度
        int codeLength = 5;

        //使用StringBuilder减少字符串拼接的次数
        StringBuilder code = new StringBuilder();

        for (int i = 0; i < codeLength; i++) {
            // 随机大写字母的ASCLL码
            int upperLetter = (int) (Math.random()*26)+65;
            // 随机小写字母的ASCLL码
            int lowerLetter = (int) (Math.random()*26)+97;
            // 随机数字的ASCLL码
            int number = (int) (Math.random()*10)+48;
            // 定义验证码判断规则
            int random = (int) (Math.random()*3)+1;
            switch (random){
                case 1:
                    code.append((char) upperLetter);
                    break;
                case 2:
                    code.append((char) lowerLetter);
                    break;
                case 3:
                    code.append((char) number);
                    break;
            }
        }
        System.out.println(code);
    }
相关推荐
做运维的阿瑞13 分钟前
Python原生数据结构深度解析:从入门到精通
开发语言·数据结构·后端·python·系统架构
璨sou13 分钟前
Rust语言--基础入门到应用
后端·rust
一只学java的小汉堡1 小时前
Spring Boot 配置详解:从引导器到注解实战(初学者指南)
java·spring boot·后端
__XYZ1 小时前
Vala编程语言高级特性-弱引用和所有权
c语言·开发语言·后端·c#
IT_陈寒1 小时前
Python开发者必坑指南:3个看似聪明实则致命的‘优化’让我损失了50%性能
前端·人工智能·后端
Ivanqhz1 小时前
Rust的错误处理
开发语言·后端·rust
java1234_小锋3 小时前
[免费]基于Python的Flask+Vue进销存仓库管理系统【论文+源码+SQL脚本】
后端·python·flask
fly-phantomWing7 小时前
Maven的安装与配置的详细步骤
java·后端·maven·intellij-idea
学编程的小鬼10 小时前
SpringBoot 自动装配原理剖析
java·spring boot·后端
码事漫谈11 小时前
SIMD编程入门:让性能飞起来的实践指南
后端