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

时间:2015-04-12 08:50:23

标签: java loops while-loop

我这里有一个随机数生成器,可以选择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--;

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

2 个答案:

答案 0 :(得分:1)

首先选择一个随机数:

int randomNumber = pick();

现在你需要选择另一个

int otherRandomNumber = pick();

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

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

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

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

并且,在每次迭代结束时,&#34;其他&#34;,最新的随机数成为下一次迭代的前一个,所以让我们重命名变量并汇总所有这些:

int previousRandomNumber = pick();

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

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

    previousRandomNumber = otherRandomNumber;
}

答案 1 :(得分:0)

你的第一个变量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--;
}