Java基础快速入门: Random 与猜数字游戏

Python、Java、C++三语言实现猜数字游戏:从入门到对比编程思维 编程入门常涉及变量、循环、条件判断等核心概念,这些是构建程序逻辑的基础骨架。理解这些概念后,开发者需要掌握不同编程语言实现相同逻辑的原理差异,这直接关系到代码的健壮性和可维护性。在工程实践中,输入验证、异常处理和资源管理是保证程序稳定运行的关键技术,其实现方式因语言特性而异。例如,Python通过try-except机制优雅处理异常,Java使用Scanner类进行预检查,而C++则需要手动管理输入流状态。通过猜数字游戏这一经典案例,可以直观对比Python的简洁高效、Java的结构化严谨以及C++的底层控 阅读详情

本文纲要

  1. Random 基本使用
    什么是 Random
    使用步骤
    生成指定范围的随机数
  2. 猜数字游戏
    需求分析
    实现流程
    代码实现
    细节补充:无限循环与 break

Random 基本使用


1 ) 什么是 Random

Random 是 Java 内置的一个工具类,位于 java.util 包下,专门用来生成随机数。
比如我们要做一个随机点名器,或者需要生成一个随机密码,都可以通过 Random 来实现。

2 ) 使用步骤

使用 Random 和之前学过的 Scanner 非常相似,分为三步:

  1. 导包
    在类定义的上面写:

    import java.util.Random;
    
  2. 创建对象

    Random r = new Random();
    

其中 r 是变量名,可以自定义,其他部分固定不变。

  1. 获取随机数
    int number = r.nextInt(10);   // 范围:[0,10) 包含0,不包含10
    

number 是变量名,可以改变;10 是范围上限,可改;其他部分固定。

3 ) 生成指定范围的随机数

r.nextInt(n) 会生成 [0, n) 左闭右开区间的随机整数。

如果我们需要 1~10 之间的随机数(包含1和10),不能直接写 nextInt(11),因为那会生成 0~10。

正确做法:生成 0~9,再加 1,即:

int num = r.nextInt(10) + 1;   // 范围 [1, 10]

代码示例(修正注释乱码后):

import java.util.Random;
 
public class Demo1Random {
    public static void main(String[] args) {
        // 创建 Random 对象
        Random r = new Random();
 
        // 循环10次,生成1~10之间的随机数
        for (int i = 1; i <= 10; i++) {
            int num = r.nextInt(10) + 1;
            System.out.println(num);
        }
    }
}

猜数字游戏

1 ) 需求分析

程序自动生成一个 1~100 之间的整数,用户通过键盘输入猜测数字,程序根据猜测结果给予提示:

  • 猜大了 → 提示“猜大了”
  • 猜小了 → 提示“猜小了”
  • 猜中了 → 提示“恭喜,猜中了”并结束游戏

因为无法预知用户几次能猜对,需要使用 死循环 反复进行猜测,猜对后通过 break 跳出。

2 ) 实现流程

是

否

是

否

开始

生成1~100随机数 randomNum

提示用户输入猜测数字

读取用户输入 num

num > randomNum?

输出“猜大了”

num < randomNum?

输出“猜小了”

输出“恭喜,猜中了”

break 结束循环

输出“感谢您的使用”

结束

3 ) 代码实现

import java.util.Scanner;
import java.util.Random;
 
public class Test {
    public static void main(String[] args) {
        // 1. 准备 Random 和 Scanner 对象 
        Random r = new Random();
        Scanner sc = new Scanner(System.in);
 
        // 2. 生成要猜的随机数 (1~100)
        int randomNum = r.nextInt(100) + 1;
 
        // 3. 使用死循环让用户反复猜测
        while (true) {
            // 提示输入
            System.out.println("请输入您猜的数据:");
            int num = sc.nextInt();
 
            // 4. 比较并给出提示
            if (num > randomNum) {
                System.out.println("猜大了");
            } else if (num < randomNum) {
                System.out.println("猜小了");
            } else {
                System.out.println("恭喜,猜中了");
                break;   // 猜对,跳出循环
            }
        }
 
        // 游戏结束后的提示
        System.out.println("感谢您的使用");
    }
}

细节补充:无限循环与 break

当 while(true) 循环内部 没有退出条件 时,循环下面的代码将永远无法执行,编译器会报错:“无法访问的语句”

本例中我们添加了 break,当猜中后执行 break,循环结束,后面的 System.out.println(“感谢您的使用”) 就可以被执行

因此,无限循环下面可以写代码,但前提是循环内部存在能让程序跳出循环的出口(如 break、return 等)

小结

通过这两个例子,我们掌握了 Random 类的基本用法,以及如何结合 Scanner 和循环、分支语句完成一个简单的猜数字游戏。

这些是 Java 基础中非常经典且实用的练习,建议亲手敲一遍,加深理解。

从猜数字游戏入门编程:多语言实现与核心逻辑解析 编程入门往往从基础概念开始,如变量、循环、条件判断和输入输出,这些构成了软件开发的核心基石。理解这些概念的工作原理,有助于掌握程序如何与用户交互并处理数据。在技术价值上,通过实现一个具体的项目,能将抽象原理转化为工程实践,提升问题解决能力。猜数字游戏作为经典入门项目,完美融合了这些要素,其简单的规则背后是状态机模型和鲁棒性处理的绝佳练习场。本文以Python、JavaScript、Java和C++为例,解析不同语言实现同一逻辑时的核心差异与避坑指南,并探讨如何通过异常处理、输入验证等技巧增强代码的健壮性。无 阅读详情

相关推荐

华为OD机试:猜数字游戏的多语言实现与优化

猜数字游戏是算法设计中的经典案例,通过比较用户输入与目标值的差异实现简单交互逻辑。其核心算法基于条件判断和循环控制,涉及输入验证、异常处理等编程基础要素。在技术实现层面,Python凭借简洁语法适合快速原型开发,Java的严谨结构符合企业级规范,而C++则能展现底层性能优势。这类基础算法题在华为OD等企业机试中具有高频出现率,既能考察候选人的编程基本功,也能验证多语言编码能力。针对猜数字场景,开发者需要特别注意边界条件处理、输入验证增强以及性能调优等工程实践要点,这些优化策略同样适用于其他交互式应用开发。

weixin_34234829的博客 398

Java 入门小项目:猜数字游戏(附完整代码)

System.out.println(“===== 猜数字游戏 =====”);今天给大家分享一个经典的入门项目——猜数字游戏,逻辑简单,代码量少,适合刚学完 Java 基础的小伙伴~ 游戏规则:程序随机生成一个 1-100 的数字,玩家输入数字进行猜测,程序会提示「猜大了」或「猜小了」,直到猜对为止,并统计猜测次数~while (true) { System.out.print(“请输入你猜测的数字:”);===== 猜数字游戏 =====请输入你猜测的数字:50。

2403_89717745的博客 577

【CV论文精读】【协同感知综述】Collaborative Perception for Autonomous Driving :Current Status and Future Trend

感知是自动驾驶系统的关键模块之一,近年来取得了很大进展。然而,单个车辆的有限能力导致感知性能提高的瓶颈。为了突破个体感知的局限,协作感知被提出,它使车辆能够共享信息来感知视线和视野之外的环境。本文综述了有前途的协作感知技术的相关工作,包括介绍了基本概念,概括了协作模式,总结了协作感知的关键要素和应用。最后,我们讨论了这一研究领域面临的挑战和问题,并给出了一些潜在的进一步方向。

weixin_44184852的博客 4691

Java 21 + Swing +Maven实现猜数字游戏

这是一个基于Java21和Swing实现的猜数字游戏教程。项目使用Maven构建,包含完整的GUI界面,功能包括:随机生成1-100数字、输入验证、反馈提示、尝试次数统计和历史记录。文章详细介绍了开发环境配置、项目结构、运行方式(包括Maven命令和IDE设置)以及核心代码解析。游戏界面采用Swing组件,通过BorderLayout、GridLayout等实现布局优化,并提供了错误处理和友好的用户交互体验。项目可作为学习Java GUI编程和事件驱动开发的入门案例,同时展示了Maven项目配置和Java2

longzhutengyue的博客 3149

VCS多lib编译实战:如何高效处理Verilog模块重命名与分开编译

本文深入探讨了在复杂SoC设计中,如何利用VCS工具实现多库编译,以高效处理Verilog模块重命名与分开编译的工程难题。通过解析synopsys_sim.setup配置、Config映射机制,并提供完整的自动化脚本实战指南,帮助工程师构建健壮、可维护的编译环境,从而显著提升大型项目的编译效率和代码管理灵活性。

weixin_29169505的博客 358

UE5 SplineMesh与StaticMesh性能对比:生成1000米路径的帧率与内存实测

本文深度对比了UE5中SplineMesh与StaticMesh在生成1000米路径时的性能差异,包括帧率、内存占用及实现复杂度。实测数据显示,SplineMesh在Draw Call优化和动态变形场景中表现更优,而StaticMesh适合需要复杂材质变化的场景。文章还提供了优化技巧和选型指南,帮助开发者根据项目需求做出科学决策。

weixin_33976326的博客 319

用java实现猜数字游戏的优化

当我们在学习java的过程中,总会有一些简单游戏的案例,例如:猜数字游戏。今天我们就要实现猜数字游戏的优化,让猜数字游戏更加具有可玩性,那么就和我一起来思考吧。

fantuan257968的博客 285

PostGIS 小白入门详细指南

PostGIS 是 PostgreSQL 的一个扩展,它将 PostgreSQL 转变为一个功能强大的空间数据库,使其能够存储、查询和分析地理空间数据。PostGIS 遵循开放地理空间联盟(OGC)的标准,支持各种空间数据类型和操作,如点、线、多边形、缓冲区、空间连接等。存储各种空间数据类型(如几何类型和地理类型)空间索引,提高查询性能丰富的空间函数和操作支持投影和坐标系统转换城市规划与管理环境监测与分析物流与运输优化地图制作与可视化位置服务与导航。

落魄书生的职业学习生涯 1万+

java实现猜数字游戏

猜数字游戏java实现

qq_52647842的博客 656

MATLAB 2026最新版免费下载安装教程:许可证激活与报错排查

科学计算与仿真在工程实践中扮演着核心角色,MATLAB 作为业界标准平台,凭借矩阵运算、数据可视化和 Simulink 仿真能力,成为高校课程设计与科研实验中的高频工具。理解其许可证机制是正确安装与持续使用的关键:官方提供试用版、学生版、家庭版及校园许可证等多种合法获取途径,安装包由引导器、工具箱文件与授权信息组成。掌握从下载到激活的完整流程,并根据操作系统进行环境配置与工具组件选装,不仅能规避安全风险,还能显著提升工程效率。针对安装过程中常见的许可证校验失败或工具箱不可用等问题,提供系统化排查思路与命令行

weixin_30702441的博客 2730

图解5G HARQ-ACK反馈:从DCI解析到PUCCH发送的完整数据流

本文详细解析了5G通信系统中HARQ-ACK反馈机制的完整流程,从DCI解码到PUCCH发送的实战指南。重点介绍了HARQ-ACK码本生成、DCI关键参数解读以及PUCCH资源映射等核心技术环节,帮助工程师深入理解5G NR中的数据传输可靠性保障机制。

weixin_27722377的博客 397

Java基础01-Java快速入门

java基础合集 - Java入门面向过程

qq_57340195的博客 910

【SWAT】SWAT中预定义河网及流域

平原圩区没有明显的海拔差异。DEM中包含的地形信息无法定义河段的位置和水文连接,SWAT模型Watershed Delineator中提供两种方法,帮助用户输入流域拓扑信息。第一种方法,“Burn-in”和手动绘制河段和子流域边界。首先,使用“Burn-in”功能导入数字河道网络(DCN),并根据DEM和DCN绘制河流和子流域。然后在ArcGIS中编辑“流域”和“河段”层,可以调整位置、范围和水文连接。第二种方法,可以手动绘制或重新编辑河流和子流域,预定义河网及流域。

```On Earth, Be Water, By Coding``` 3274

Python/JS/Java/C#四语言实现猜数字游戏:编程入门核心逻辑对比

编程入门阶段,理解基础语法和核心逻辑是构建开发能力的关键。变量定义、条件判断和循环控制构成了程序的基本骨架,而输入输出处理和异常捕获则是实现健壮交互的核心技术。掌握这些基础概念,能够帮助开发者快速实现功能原型并理解不同语言的设计哲学。在游戏开发、教学演示和自动化脚本等应用场景中,通过经典项目实践是巩固知识的有效途径。本文以猜数字游戏为例,对比Python、JavaScript、Java和C#四种语言的实现差异,重点解析了随机数生成、输入验证和循环结构等关键技术在不同语言中的具体应用,并探讨了异常处理与返回值

weixin_33938733的博客 420

YOLOv11与CLIP融合的零样本目标检测技术:原理、实现与创新实践

YOLO(You Only Look Once)系列作为单阶段检测器的代表,以其实时高效的特性在工业界获得广泛应用。YOLOv11作为该系列的最新演进,引入了多项架构创新: C3K2模块:采用双小卷积核替代传统大卷积核,在保持感受野的同时减少计算量。当参数c3k=False时退化为YOLOv8的C2F模块,提供灵活的精度-效率权衡。 C2PSA(Convolutional block with Parallel Spatial Attention):通过并行空间注意力机制增强对微小目标的特征提取能力,这对

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1070

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

(java总结)随机数Random

package Demo1; import java.util.Random; /* Random类用来生成随机数字,使用有三个步骤: 1、导包: import java。util。Random; 2、创建 Random r = new Random();//小括号中留空即可 3、使用 获取一个随机的int数字(范围是int所有范围,有正负俩种):int num = r.nextInt(); ...

weixin_45526489的博客 236

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【Java练习】猜数字游戏

学习目标: 目标:快速掌握 Java 入门知识 学习内容: 本文内容:使用java语言编写猜数字游戏 文章目录学习目标:学习内容:实现思路:实现代码: 实现思路: 先试用random生成一个随机整数,在使用一个while(true)循环,用户输入数字。通过与随机数进行比较知道相等则跳出循环 实现代码: public class practice { public static void main(String[] args) { Scanner scanner = new S

zhangxxin的博客 199

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

P26 Random类

Random类

李晋江的博客 1149

Java最简单小游戏程序,贪吃蛇与猜数字游戏实现指南

寻找Java最简单的小游戏程序是很多初学者入门编程时的重要一步,通过制作小游戏可以快速掌握基础语法和逻辑思维。Java作为一门面向对象的语言,其语法严谨且跨平台特性突出

2509_93883384的博客 150

Java之Random猜数字游戏

游戏规则 产生一个随机数,当本轮游戏的结果值 输入一个猜测值 *若猜的小了,重新猜! *若猜的大了,重新猜! *若猜的刚好相等,则恭喜猜对了! 备注:采用类二分查找方法猜,比较科学。 不计尝试次数代码 public class Demo04RandomGame { public static void main(String[] args) { //首先产生一个随机整数[1,100] Random r = new Random(); int ran

Powerking666的博客 399

Python、JavaScript、Java三语言实现猜数字游戏:对比编程范式与工程实践

编程语言是实现逻辑的工具,其核心差异体现在语法特性、执行模型和适用场景上。从原理上看,Python作为动态脚本语言,以解释执行和简洁语法著称,适合快速原型开发;JavaScript基于事件循环和异步非阻塞I/O,是Web全栈开发的基石;Java则通过JVM实现跨平台,强类型和面向对象特性使其适合构建大型系统。在技术价值层面,多语言实践能帮助开发者理解不同范式的优劣,提升技术选型能力。应用场景上,Python常用于数据分析和自动化,JavaScript主导前后端开发,Java则广泛应用于企业级后端。本文以经典

weixin_33841503的博客 396

Java基础学习之Random类和Robot类及猜数小游戏

Random类:此类的实例用于生成伪随机数流。但是它的随机范围是0到正数之间,不包括负数,要得到负数到正数的随机数,例子如下: package com.test.exercise_2; import java.util.Random; public class Test { /** * @param args */ public static void main(String[

liang的博客 419

Random类

Random类 什么是Random类 此类的实例用于生成伪随机数。 例如,以下代码使用户能够得到一个随机数: Random r = new Random(); int i = r.nextInt(); Random使用步骤 查看类 java.util.Random :该类需要 import导入使后使用。 查看构造方法 public Random() :创建一个新的随机数生成器。 查看成员方法 public int nextInt(int n) :返回一个伪随机数,范围在 0

m0_50125748的博客 176

Java和c随机数(Random)

1、看视频进行系统学习这几年的Crud经历,让我明白自己真的算是菜鸡中的战斗机,也正因为Crud,导致自己技术比较零散,也不够深入不够系统,所以重新进行学习是很有必要的。我差的是系统知识,差的结构框架和思路,所以通过视频来学习,效果更好,也更全面。关于视频学习,个人可以推荐去B站进行学习,B站上有很多学习视频,唯一的缺点就是免费的容易过时。2、读源码,看实战笔记,学习大神思路“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。

2401_85112052的博客 515

当然可以!下面我将为您提供使用 Python、JavaScript (HTML5 Canvas) 和 Java 创建的简单小程序游戏代码。

下面我将为您提供使用 Python、JavaScript (HTML5 Canvas) 和 Java 创建的简单小程序游戏代码。2. JavaScript (HTML5 Canvas) - 制作一个简单的“接苹果”游戏。2. JavaScript (HTML5 Canvas) - 制作一个简单的“接苹果”游戏。注意:这只是一个非常基础的示例,没有包含接苹果的逻辑。注意:这只是一个非常基础的示例,没有包含接苹果的逻辑。

EdgarBertram的博客 529

java猜数游戏图形界面_java实现登录的验证码和猜数字游戏_图形化界面

实验任务四1,出现设计思想(1)先定义文本框、密码框和验证码框的组件(2)定义面板和按钮的个数(3)定义公有的虚构方法,通过对象实例化来调用(4)利用Random类来实现生成0-9的随机数(5)设置面板的布局,设置面板的显示2,程序流程图3,源程序package登录界面2;importjavax.swing.*;importjava.util.Random;importjava.awt.*...

weixin_31199559的博客 546
上一篇: Java基础快速入门: for、while、do-while、跳转与死循环
下一篇: Java基础快速入门:数组概念、定义格式与动态初始化详解
Wang's Blog
博客等级 码龄12年 7434粉丝 2421原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

Wang's Blog

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

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

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

打赏作者

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

抵扣说明:

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

余额充值