【问题标题】:Generate 10 Random Integers storing them in an Array and then calling a Method to display the Array生成 10 个随机整数,将它们存储在一个数组中,然后调用一个方法来显示数组
【发布时间】:2015-01-06 00:30:42
【问题描述】:

所以我需要在 1-20 范围内生成 10 个随机整数,但我必须将它们存储在一个数组中 称为数字。然后我必须调用一个名为 displayArray 的方法来显示 数组和赋值我必须使用一个for循环来遍历数组。

displayArray 方法的方法头是:

public static void displayArray(int[] array)

这就是我所做的

public class RandomIntegers {

    static int numbers = 0;

    public static void displayArray(int[] array) {
         System.out.println(numbers + "Numbers Generated");
    }

}//end class

public class Random_Integers{

    public static void main(String[] args) {

        RandomIntegers[] numbers = new RandomIntegers[10];

        //Generates 10 Random Numbers in the range 1 -20
        for(int i = 0; i < numbers.length; i++) {
          numbers[i] = (int)(Math.random() * 20);

            RandomIntegers Numbers = new RandomIntegers();

            numbers[i] = Numbers;

        }//end for loop

        for (int i = 0; i < numbers.length; i++) {
            numbers Numbers = numbers[i];       

            Numbers[i].displayArray;        
            System.out.println();

        }//end for loop
  }//end main method
}//end class

一行出现错误

类型不匹配无法从 int 转换为 RnadomIntegers

numbers[i] = (int)(Math.random() * 20);

数字无法解析为类型

numbers Numbers = numbers[i];

语法错误输入'AssignmentOperator Expression'以完成表达式

Numbers[i].displayArray;

我意识到我需要将 RandomIntegers 类的实例分配给数组中的插槽以解决第一个问题,但我不知道如何解决,有人可以告诉我该怎么做

我不知道如何解决其他两个问题,我只是在学习如何使用 java,所以有人可以指导我正确的方向

【问题讨论】:

  • 为什么一开始有两个班?在你的主方法中只需要int[] numbers = generateRandomNumbers(); displayArray(numbers);,然后在同一个类中定义这两个静态方法。这两种方法中的每一种都应使用循环:一种用于填充数组,另一种用于显示数组的每个元素。不要让事情变得比需要的更复杂,因为你还没有掌握类型和类。

标签: java arrays random


【解决方案1】:

你已经创建了一个 RandomIntegers 类型的数组,使用它可以工作int[] numbers = new int[10]; 代码没有问题

【讨论】:

    【解决方案2】:

    要生成一个随机的整数,你最好使用这个:

    Random rand = new Random();
    numbers[i] = rand.nextInt(20)+1;
    

    rand.nextInt(20) 调用将给出一个从 0 到 19 的随机数,因此加 1 使其从 1 到 20。

    在实践中,您不需要每次都创建一个新的Random();你会放这个

    Random rand = new Random();
    

    在循环开始时,然后

    numbers[i] = rand.nextInt(20)+1;
    

    在里面。

    由于您有几个错误,我建议您重新开始,一点一点地编写您的代码,并在每个阶段检查它是否编译并执行您想要的操作。例如,首先打印一个随机数,然后检查它是否有效。

    【讨论】:

      【解决方案3】:

      您只需要使用一个 for 循环 - 像这样:

      public static void main(String[] args) 
      {
          int[] numbers = new int[10];       
          //Generates 10 Random Numbers in the range 1 -20
          for(int i = 0; i < numbers.length; i++) {
            numbers[i] = (int)(Math.random()*20 + 1);
          }//end for loop
          System.out.println("Numbers Generated: " + Arrays.toString(numbers));
      }
      

      【讨论】:

      • 为了以后的参考,您还必须import java.util.Arrays;
      【解决方案4】:

      从 Java 8 开始,您可以使用以下内容:

      public static void main(String[] args) {
          int[] numbers = new Random().ints(1, 21).limit(10).toArray();
          System.out.println("Numbers generated: " + Arrays.toString(numbers));
      }
      

      输出:

      Numbers generated: [4, 14, 8, 14, 19, 16, 13, 2, 3, 1]
      

      ints(randomNumberOrigin, randomNumberBound) 中,randomNumberOrigin 是包容性的,而 randomNumberBound 是排斥性的。因此,您可能希望将 randomNumberBound 数增加 1。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-08-23
        • 1970-01-01
        • 2014-12-13
        • 1970-01-01
        • 2016-03-27
        • 1970-01-01
        • 1970-01-01
        • 2021-02-15
        相关资源
        最近更新 更多