如何在不使用数组的情况下生成随机数列表并确定最大值?

问题描述 投票:0回答:2

如何在Java中生成10到100之间的5个随机数的列表,并在不使用数组的情况下打印最大的随机数?

public class Random {
    public static void main(String[] args){
        for(int i = 0; i < 5; i++){
            System.out.println((int)((Math.random() * 91) + 10));
        }
    }
}
java random
2个回答
1
投票

你已经有了“生成随机int”的位。现在你需要的是“没有数组的最大值”位。

由于无法将它们存储在数组中,因此仍可以使用临时变量

public static void main(String[] args){
  int tempMax = 0;

  for(int i = 0; i < 5; i++){
    ...

使用它,我们可以在循环之外保存一个值。现在我们需要将我们的临时值与我们生成的值进行比较,看看我们是否生成了更大的值。

for(int i = 0; i < 5; i++){
  int newValue = (int)((Math.random() * 91) + 10);

  if (newValue > tempMax) {
    // code goes here
  }

注意:重要的是tempMax的起始值小于您生成的值(在本例中为10)。否则,您可能会生成一串-1,并且您的最大值将报告为0。

在那之后,这只是一个简单的任务

if (newValue > tempMax) {
  tempMax = newValue;
}

class Random {
  public static void main(String[] args) {

    int tempMax = 0;

    for(int i = 0; i < 5; i++){
      int newValue = (int)((Math.random() * 91) + 10);

      if (newValue > tempMax) {
        tempMax = newValue;
      }
    }

    int max = tempMax;

    System.out.println("Max value" + max);
  }
}

这看起来像是家庭作业,所以我试图在如何做到这一点的背后思考过程。尽管如此,学习搜索Google(以及在您的技能水平上查找文档)是一项重要技能,因为Stack Overflow不鼓励这样的问题。


2
投票
int maxRand = ThreadLocalRandom.current().ints(5, 10, 101).max().getAsInt();

This question涵盖了要点,但我们称之为.max().getAsInt()。调用.getAsInt()是安全的,因为我们知道流是非空的,因此会有一个最大值。

您也可以使用new Random(),如链接的答案所示,但我默认使用ThreadLocalRandom.current(),除非您有充分的理由手动构建Random实例。

© www.soinside.com 2019 - 2024. All rights reserved.