当前位置: 首页 > 知识库问答 >
问题:

Java——生成随机数,并根据每个值对其进行分类

郏志诚
2023-03-14

我是Java新手。所以,我想做的是,创建一个程序,生成25个随机int值,并为每个值使用if-else语句将其分类为大于、小于或等于第二个随机生成的值。我想使用数组来访问每个元素,但我不确定除了使用数组之外我还能做什么。

import java.util.Random;

public class main {

    public static void main(String[] args){
        Ranhtml" target="_blank">dom rand = new Random();
        int[] randNumber = new int[25];

        for (int i = 0; i<25; i++){
            randNumber[i] = rand.nextInt(100);
        }

        if (randNumber[i]<randNumber[i+1]){
            System.out.println("Number " + randNumber[i] + "smaller than " + randNumber[i+1]);
        }
        else if(randNumber[i]>randNumber[i+1]){
            System.out.println("Number" + randNumber[i] + "greater than" + randNumber[i+1]);
        }else if(randNumber[i] == randNumber[i+1]){
            System.out.println("Number " + randNumber[i] + "equal to " + randNumber[i+1]);
        }else{
            System.out.println("Wrong!");
        }

    }
}

我知道if-else部分是完全错误的,但我不知道如何访问数组并比较它们。当我编译时,它会创建25个随机数,但打印部分总是显示

大于0的数字x

因此,[我1 ]认为总是零。

非常感谢

使现代化

多亏了Dawood ibn Kareem的回答,我最终创建了2个for循环。

for (int i = 0; i<25; i++){
            randNumber[i] = rand.nextInt(100);
}

for(int i = 0; i<25; i++) {
            if (randNumber[i] < randNumber[i + 1]) {
                System.out.println("Number " + randNumber[i] + " smaller than " + randNumber[i + 1]);
            } else if (randNumber[i] > randNumber[i + 1]) {
                System.out.println("Number " + randNumber[i] + " greater than " + randNumber[i + 1]);
            } else if (randNumber[i] == randNumber[i + 1]) {
                System.out.println("Number " + randNumber[i] + " equal to " + randNumber[i + 1]);
            } else {
                System.out.println("Wrong!");
            }
 }

输出看起来像这样;

Number 47 equal to 47
Number 47 smaller than 90
Number 90 greater than 84
Number 84 greater than 50
Number 50 greater than 29
Number 29 smaller than 42
Number 42 smaller than 51
Number 51 smaller than 92
Number 92 greater than 8
Number 8 smaller than 31
Number 31 smaller than 87
Number 87 greater than 10
Number 10 smaller than 80
Number 80 greater than 56
Number 56 greater than 49
Number 49 smaller than 63
Number 63 greater than 33
Number 33 smaller than 64
Number 64 greater than 25
Number 25 smaller than 87
Number 87 greater than 16
Number 16 smaller than 65
Number 65 greater than 15
Number 15 smaller than 44

但我有一个错误说;

线程“main”java中出现异常。lang.ArrayIndexOutOfBoundsException:索引25超出主节点长度25的界限。main(main.java:15)

共有2个答案

洪河
2023-03-14

我想使用数组来访问每个元素,但我不确定除了使用数组之外我还能做什么。

嗯,如果你的要求是在没有数组的情况下完成它——你可以只生成这个数字,然后立即检查这个数字是等于还是大于或小于前一个数字:

int n = 25;
int previous = rand.nextInt(100);
for (int i = 0; i < n - 1; i++) {
    int current = rand.nextInt(100);
    
    String comparison;
    if (previous < current) {
        comparison = "smaller than";
    }
    else if (previous > current) {
        comparison = "greater than";
    }
    else {
        comparison = "equal to";
    }
    System.out.println(String.format("Number %s %s %s", previous, comparison, current));

    previous = current;
}
吕越彬
2023-03-14

运行for循环24次而不是25次,因为如果i=24,则索引randNum[24]处没有数组值(数组索引从0开始)(当在if语句中执行i 1时)。

java prettyprint-override">for (int i = 0; i < 24; i++)
{
  //your if-else blocks
}
 类似资料:
  • test的之和为15; 假如我总数为29, 生成15个框(根据test的之和15就生成15个框)的数据:如下图() 下面写的这个方法:在第14个框的值为27-29之间的数据,第15个框的值为负数了,请问这个方法能优化下吗?或者还有其他方法吗?

  • 问题内容: 我有一张像这样的表: SQL或蜂巢中是否有一种方法可以将其转换为类似表的形式: 我不确定有没有一个词来描述这种操作…任何帮助将不胜感激! 问题答案: 这基本上是一个。您没有指定要使用的RDBMS,但是可以使用聚合函数和语句在任何数据库中获取结果: 参见带有演示的SQL Fiddle 结果:

  • 在 Java 中要生成一个指定范围之内的随机数字有两种方法:一种是调用 Math 类的 random() 方法,一种是使用 Random 类。 Random 类提供了丰富的随机数生成方法,可以产生 boolean、int、long、float、byte 数组以及 double 类型的随机数,这是它与 random() 方法最大的不同之处。random() 方法只能产生 double 类型的 0~1

  • 我正试图让盖特林为每个POST请求创建随机数据。我关注了stackoverflow和其他地方的一些帖子。我想出了这个方案- 然而,当我运行这段代码时,它只调用我的feeder一次,以创建一个UUID,并在整个负载测试中重新使用相同的UUID。 在遵循这条线索之后,我创建了上面的代码。我用的是加特林2.2.5。这是我的sbt配置-

  • 我是全新的java和我有这个问题我总是得到0随机数大于用户的价值我应该得到不同数量的随机数大于值每次我运行的程序 “while”代码用于提示用户重新输入30-70之间的值,以防用户输入超出该范围的内容。 “for”代码是生成100个随机数,并分析有多少大于用户输入的值。 最后,只需打印出有多少随机数大于该值的结果,并打印用户输入的值 我知道这是一个非常简单的代码,我找不到它有什么问题! 这是我得到

  • 问题内容: 我想知道如何在两个给定值之间生成一个随机数。 我可以使用以下内容生成一个随机数: 但是,如何生成0到100(含)之间的随机数? 问题答案: 你可以使用例如 r.nextInt(101) 对于更通用的“在两个数字之间”,请使用: 这会为你提供介于10(含)和100(不含)之间的随机数