如何生成Java随机数
5. 7. 22.对于我们人类来说,很容易生成一个随机数。我们所要做的就是问自己一个数字,一个突然出现在我们的脑海中。
如果仅仅是编程那么容易,对吧?在Java中,如果知道如何生成随机数很容易。
在本指南中,我们将讨论可用于生成随机数的三种方法。我们将通过示例说明每种方法在数字猜谜游戏中的工作方式。
产生一个随机数
我们都玩过其中一种要求您在某个时候猜一个数字的游戏。如果您猜对了,其中一些甚至会颁发奖品。对于本指南,我们将使用Java创建一个数字猜谜游戏。
当然,第一步是生成一个随机数。没有随机数,我们的游戏将不会很有趣。让我们逐一介绍可用于执行此操作的三种方法。
使用随机类
Java有一个方便的类,称为“ Random”,您可以使用该类生成随机数。我们将通过使用java.util.Random类来生成随机数流来开始我们的数字猜测游戏:
import java.util.Random;
class Main {
public static void main(String args[]) {
Random random_number_generator = new Random();
int random_number = random_number_generator.nextInt(25);
System.out.println(random_number);
}
}
当我们运行该类三次时,将生成三个随机数:
22
15
19
我们从导入类开始java.util.Random。然后,我们创建了一个此类的实例“ random_number_generator”。使用此实例,我们可以生成随机数。
该nextInt()方法允许我们生成介于0和另一个指定数字之间的随机数。在上面,我们指定了数字25。这意味着我们的生成器将返回的所有数字都将在0到25之间。
使用Math.random()
该的Math.random()方法需要更多一点的工作使用,但它仍然是一个很好的方式来产生一个随机数。让我们使用创建一个随机数生成器序列Math.random():
class Main {
public static void main(String args[]) {
int small = 0;
int large = 25;
int random_number = (int)(Math.random() * (large - small + 1) + small);
System.out.println(random_number);
}
}
Math.random()内置于Java中。这意味着我们不必将其导入代码中。
我们首先声明两个变量。“ small”指定下限,在该下限范围内不应生成任何数字;“大”是上限,在该上限之上不应生成任何数字。
然后,我们使用了一个公式来生成一个随机数。这是因为Math.random()它本身不会返回整个随机数。Math.random方法返回0.0到1.0之间的随机数。我们必须使用上面的公式将其转换为我们范围内的整数。
当我们运行代码三次时,将生成三个随机数:
2
1
9
使用ThreadLocalRandom
ThreadLocalRandom是可用于生成随机数的类。
当您要并行生成多个随机数时,最好使用此类。这通常发生在多线程环境中。
让我们使用此方法创建一个随机数生成器:
import java.util.concurrent.ThreadLocalRandom;
class Main {
public static void main(String args[]) {
int small = 0;
int large = 25;
ThreadLocalRandom random_number_generator = ThreadLocalRandom.current();
int random_number = random_number_generator.nextInt(small, large);
System.out.println(random_number);
}
}
我们从导入ThreadLocalRandom库开始,该库包含用于生成随机数的类。然后,我们指定了两个变量,用于设置随机数生成器的下限和上限。
我们已经声明了一个名为random_number_generator的变量,该变量引用ThreadLocalRandom类。然后,我们使用了该nextInt()方法,并指定了“ small”和“ large”变量作为参数,以便生成一个随机数。
执行我们的程序三次,将返回三个随机数:
4
23
15
现在,我们准备开始构建其余的猜测游戏。
创建猜测逻辑
现在我们知道如何生成随机数。构建游戏的下一步是创建允许用户猜测随机数的逻辑。
您可以将上面的任何示例与该代码配合使用以使其工作。我们的代码段中的变量名已设置为与以下示例兼容。
让我们从使用“ Scanner”类开始,让用户猜一个数字开始:
此代码要求我们的用户“猜测1到25之间的数字:”。用户输入到Java控制台的值将存储为变量“ user_guess”。
然后,我们将编写一条if语句,该语句检查用户猜测的数字是否等于程序生成的数字:
import java.util.Scanner;
class Guessing {
public static void main(String[] args) {
// Guessing code goes here
Scanner guess = new Scanner(System.in);
System.out.println("Guess a number between 1 and 25: ");
int user_guess = guess.nextInt();
int small = 0;
int large = 25;
int random_number = (int) (Math.random() * (large - small + 1) + small);
if (user_guess == random_number) {
System.out.println("You have correctly guessed the number!");
} else {
System.out.println("Your guess is incorrect!");
}
}
}
让我们运行程序并输入1到25之间的数字:
Guess a number between 1 and 25:
7
Your guess is incorrect!
如果我们正确猜出了数字,程序将返回以下内容:
Guess a number between 1 and 25:
9
You have correctly guessed the number!
仅需几行代码,我们就能够成功创建一个能够生成随机数进行猜测的游戏。
结论
随机数在编程中具有广泛的用途。在此示例中,我们介绍了如何在猜谜游戏中使用随机数。
可以使用三种方法来生成随机数:
- 使用Random类
- 使用内置Math.random()方法
- 使用ThreadLocalRandom类
您在寻找挑战吗?更改我们的猜测游戏代码,以便您可以进行多次猜测。