在 Java 中使用随机数生成器循环

Looping with a random number generator in Java

我这里有一个随机数生成器,可以从 1 - 50 中选择一个数字。

我想要它做的是从 1-50 中选择第二个随机数,如果它大于前一个随机数,它将 打印到控制台,并且重复多次,比如说10次。

我的老师希望我只使用 Math.floor(Math.random() 方法来生成数字,所以我必须使用它。

我不确定如何将最新生成的号码与之前生成的号码进行比较。

到目前为止我得到的是

int myRand = 10;
    while (myRand > 0) {
        int myRand2 = (int) (Math.floor(Math.random() * 50) + 1);
        System.out.println(myRand2);
        System.out.println();
        myRand--;

将第一个生成的数字与后续生成的数字进行比较的第二部分在哪里?

你的第一个变量 myRand 不是随机的...对我来说它看起来更像是你的循环迭代器。您永远不会制作两个随机变量。如果我正确理解你的问题,你的答案应该更像这样:

int i = 10;
while (i > 0)
{
    int myRand1 = (int) (Math.floor(Math.random() * 50) + 1);
    int myRand2 = (int) (Math.floor(Math.random() * 50) + 1);
    if (myRand2 > myRand1)
        System.out.println(myRand2);

    System.out.println();
    i--;
}

让我们从随机数开始:

int randomNumber = pick();

现在你需要再选一个

int otherRandomNumber = pick();

如果它比前一个大,则打印到控制台

if (otherRandomNumber > randomNumber) {
    System.out.println(otherRandomNumber);
}

但是你需要这样做10次,所以你需要一个循环:

for (int i = 0; i < 10; i++) {

而且,在每次迭代结束时,"other",最新的随机数成为下一次迭代的前一个,所以让我们重命名变量和 assemble 所有这些:

int previousRandomNumber = pick();

for (int i = 0; i < 10; i++) {
    int otherRandomNumber = pick();

    if (otherRandomNumber > previousRandomNumber) {
        System.out.println(otherRandomNumber);
    }

    previousRandomNumber = otherRandomNumber;
}