关于java:两个方法代码,打印1-20的数组,跨度为10

Two method code that prints an array of 1-20 with a span of 10

主要方法如下:

  • 声明一个大小为20的数组,该数组将包含20个整数。
  • 生成20个范围为1到10的随机整数,并将它们放入这个数组中。
  • 使用从1到20的for循环来填充数组。在for循环中,调用方法1在将其放入数组时一次生成一个随机数。
  • 将范围的起始值发送给方法。
  • 将范围的结束值发送给方法。
  • 显示数组的内容。
  • 调用方法2打印出数组。
  • 将方法发送到数组。
  • 将数组的大小发送给方法。
  • 这是我目前为止的代码,有几个错误:

    1
    2
    3
    4
    5
    6
    Kidwell_Lab09.java:29: error: incompatible types: int[] cannot be converted to int randomNumbers = new int[SIZE];
    Kidwell_Lab09.java:32: error: array required, but int found System.out.println("Number" + i +" :" + randomNumbers[i]);
    Kidwell_Lab09.java:39: error: cannot find symbol x = inputReader.nextInt();
    symbol: variable x location: class Kidwell_Lab09
    Kidwell_Lab09.java:40: error: cannot find symbol } while (x == 1);
    symbol: variable x location: class Kidwell_Lab09 4 errors

    在这品脱的时候,我感到有点迷茫,提前谢谢:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    import java.util.Scanner;
    import java.util.Random;

    public final class  {
        public static Random generator = new Random();

        public int createNum(int[] randomNumbers, int SIZE, int n, int i) {

            int x;
            SIZE = 20;
            randomNumbers = new int[SIZE];

            Random generator = new Random();
            for (i = 0; i < SIZE; i++) {
                n = generator.nextInt(10) + 1;  
                randomNumbers[i] = n;
            }
            return n;
        }

        public void print(int i, int randomNumbers, int SIZE){
            SIZE = 20;
            randomNumbers = new int[SIZE];

            for (i = 0; i < SIZE; i++) {
                System.out.println("Number" + i +" :" + randomNumbers[i]);
            }
        }

        public static void main(String[] args){
            do{
                Scanner inputReader = new Scanner(System.in);
                System.out.print("Do you wish to restart the program, Enter 1 for YES, 2 for NO:");            
                x = inputReader.nextInt();
            } while (x == 1);
        }
    }


    你的说明对我来说已经足够清楚了,让我们从method1开始;你要传递范围的开始和结束,并返回这两个值之间的随机值。你有一个Random,所以我们用它。比如,

    1
    2
    3
    4
    private static Random generator = new Random();
    public static int method1(int start, int end) {
        return generator.nextInt(1 + end - start) + start;
    }

    接下来,您需要传递一个数组,它的长度为method2(用于显示数组)。这里有一个这样的方法(我希望您的指导老师在这里预期使用for循环,但我将把它作为练习保留)

    1
    2
    3
    public static void method2(int[] arr, int len) {
        System.out.println(Arrays.toString(arr));
    }

    最后,您的main方法应该调用方法method1method2来填充数组并显示它。有点像

    1
    2
    3
    4
    5
    6
    7
    public static void main(String[] args) {
        int[] arr = new int[20];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = method1(1, 10);
        }
        method2(arr, arr.length);
    }

    您已经声明了未使用的变量并传递了不必要的变量。

    通过在主函数中声明Array,然后在两个函数中只传递数组,可以很容易地完成这项工作。您不需要传递SIZE和其他变量。

    下面是代码段:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    class Main {
        private static final Random RND_GEN = new Random();
        private void createNum(int[] randomNumbers) {
            for (int i = 0; i < randomNumbers.length; i++) {
                randomNumbers[i] = RND_GEN.nextInt(10) + 1;
            }
        }

        private void printNum(int[] randomNumbers){
            for (int i = 0; i < randomNumbers.length; i++) {
                System.out.println("Number" + i +" :" + randomNumbers[i]);
            }
        }

        private void run() {
            Scanner inputReader = new Scanner(System.in);
            int x = 1;
            do {
                int[] number = new int[20];
                createNum(number);
                printNum(number);
                System.out.print("Restart Program?, Enter 1 for YES, 2 for NO:");            
                x = inputReader.nextInt();
            } while (x == 1);
        }

        public static void main(String[] args) {
            Main me = new Main();
            me.run();
        }
    }

    输入:

    1
    2

    输出:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Number 0 : 4
    Number 1 : 4
    Number 2 : 2
    Number 3 : 2
    Number 4 : 6
    Number 5 : 1
    Number 6 : 2
    Number 7 : 7
    Number 8 : 9
    Number 9 : 8
    Number 10 : 5
    Number 11 : 2
    Number 12 : 9
    Number 13 : 1
    Number 14 : 10
    Number 15 : 6
    Number 16 : 8
    Number 17 : 1
    Number 18 : 2
    Number 19 : 6