0

假设我有 3 个输出:

System.out.println("output 1");
System.out.println("output 2");
System.out.println("output 3");

我将如何使它只打印一个输出,而每次打印的输出都是随机的?

4

6 回答 6

5
// Collect all the possible outputs.
String[] outputs = new String[] { "output 1", "output 2", "output 3" };
// Use the core library class java.util.Random to get a source of pseudo-randomness.
Random random = new Random();
// Pick one and print it.
System.out.println(outputs[random.nextInt(outputs.length)]);

nextInt返回一个伪随机数,均匀分布在 0 及其参数 - 1 之间。

由于Random是伪随机的,如果您需要即使观察到您的许多随机选择的人也无法猜测输出,请SecureRandom改用。

于 2013-03-16T20:48:21.250 回答
3

您可以使用 Math.random() 来完成此操作。

首先,生成一个介于 0 和 3 之间的随机数:

int randomNum = (int)Math.random() * 3;

接下来,使用 if-else 语句来选择要打印的语句:

if(randomNum == 0)
   //print case 1
else if(randomNum == 1)
   //print case 2
else //print case 3
于 2013-03-16T20:51:08.977 回答
2

将要打印的字符串放入String数组中,然后生成不超过该数组大小的随机数。在生成的索引处打印String

于 2013-03-16T20:47:26.830 回答
2

您可以使用java.util.Random该类生成一个随机数int,然后只需使用一个简单的if语句来打印相应的输出。

于 2013-03-16T20:47:32.303 回答
1

最简单的方法可能是创建一个随机整数并使用 switch 语句和 case 来选择每个输出。

于 2013-03-16T20:48:25.820 回答
1

这是一个简单的实现:

String[] str = { "Output1", "Output2", "Output3" };
Random r = new Random();
System.out.println(str[r.nextInt(3)]);
于 2013-03-16T20:51:20.237 回答