学习
实践
活动
工具
TVP
写文章

如何用代码生成一个随机数?

先复习下前几天学过的知识:

JVM:Java虚拟机,运行Java程序的假想计算机。

JRE:Java的运行环境,包括JVM和核心类库。

JDK:Java的开发工具包,包括JRE和开发人员使用的工具。

那么JRE中的核心类库到底是啥?

这几天就学学几个常用的核心类。

一、Scanner类

Scanner,翻译成中文就是“扫描仪”的意思。

顾名思义,也就是说通过这个类,我们可以直接通过键盘输入我们想运行的数值。

就比如计算1到100的数值之和,如果要计算1到50的呢?就得修改Java代码,但若是有了Scanner,直接在键盘上修改数值就可以了。

Scanner是一个工具类,是Java已经存在的一个类,不需要我们自己再去建一个类,直接调用就可以了。

import:导包关键字。

import导包(导入Scanner工具类)。

新建Scanner对象。

格式:类名 对象名=new 类名(参数)。

用对象调用Scanner类的成员方法:

scanner.nextInt()。

在控制台上输入数字。

这个数字会被步骤中的成员方法获取到。

打印这个数字。

二、Random类

Random,翻译成中文就是“随机的”的意思。

顾名思义,也就是说通过这个类,可以获取一个随机数。

Random是一个工具类,是Java已经存在的一个类,不需要我们自己再去建一个类,直接调用就可以了。

步骤:

import导包(Random工具类)。

新建随机数(Random)对象。

格式:类名 对象名=new 类名(参数)。

参数表示随机数的范围,比如参数为10即表示10以内(不包括10)的随机数,100即表示100以内(不包括100)的随机数。

调用随机数(Random)成员方法。

random.nextInt(参数)

打印随机数。

思考:

既然new Random(10)表示10以内(也就是0到9)的随机数,那我若是要10到100呢?

首先确定一共有多少个数字,10到100有91个(注意是91而不是90个),那么就是new Random(91)。

其次new Random(91)表示的是0到90的随机数。

最后new Random(91)+10就是表示的10到100的随机数了。

小结练习:猜数字小游戏

游戏开始时,会随机生成一个1-100之间的整数number 。玩家猜测一个数字guessNumber,会与number 作比较,系统提示大了或者小了,直到玩家猜中,游戏结束。

分析

需要建立随机数对象和scanner对象。

因为需要猜一或多次才能猜中,故需要用到循环结构。

因为不确定需要猜几次才能猜中,故用while循环。

需要将随机数和猜的数值比较,故要用到if选择结构。

编写代码如下:

新建random对象。

获取1到100的随机数。

新建scanner对象。

提示用户输入数字,并设定循环结构。

获取用户输入的数字。

比较输入数字和随机数的大小。

思考:

设定的循环结构为死循环,在用if选择语句判断时,若是两个数不相等,用continue跳出此次循环,继续下次循环;若是猜对了,用break结束循环,循环结束;

后来发现自己完全想多了,不用这两个关键字也可以。

scanner对象在调用nextIn()方法时,控制台会让用户输入数字,会打断循环,并不会一直循环下去。

三、ArrayList类

ArrayList,这是Java里的一个集合。

前面学了数组,我们知道数组的一个特点,就是它的长度是固定的。

那ArrayList这个类就可以理解成一个长度可变的集合。

前几天学习,知道了一个数组直接打印出来的话,显示的是地址,但集合是可以直接打印的。

若是未初始化,打印出来就是一个空值;

若是初始化了,打印出来就是一个个元素,用中括号:[]装着这些元素

其中添加元素的方法为list.add()

那么ArraryList这个集合还有哪些常用的方法呢?

get(索引):获得集合对应索引位的元素。

size():获得集合的大小(一共多少个元素)。

remove(索引):移除集合中对应索引位的元素。

contains(“元素”):判断几个中是否包含该元素。

附:

ArrayList list中:String表示集合中存储的元素类型为String;是引用数据类型,集合只能存储引用数据类型,不能用于存储基本数据类型。

比如ArrayList list这样写是不对的

那若是要存储基本数据类型,该怎么办?

这就需要将基本数据类型转换为一个包装类:

byte转换为Byte

short转换为Short

int转换为Integer(重点记忆)

long转换为Long

float转换为Float

double转换为Double

char转换为Character(重点记忆)

boolean转换为Boolean

总结:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200428A0IGSU00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券