从20个整数的数组生成额外的随机数

时间:2016-04-12 18:45:55

标签: java arrays random methods

我遇到这个问题,我需要生成一个具有相同1-10跨度的附加单个随机数。我已经有了随机生成器的代码,它生成了我的20个整数随机数组,但是如何在同一个方法中的同一个范围内生成一个随机数。这是我到目前为止,它一直给我随机数0:从我的20整数数组。提前谢谢。

import java.util.Scanner;
import java.util.Random;
class Main{
 public static final Random RND_GEN = new Random();
   public int[] createNum(int[] randomNumbers) {
    for (int i = 0; i < randomNumbers.length; i++) {
        randomNumbers[i] = RND_GEN.nextInt(10) + 1;
    }
    for (int i = 0; i < 1 ; i++){
    randomNumbers[i] = RND_GEN.nextInt(10) + 1;

    }

    return randomNumbers;
}

public void printNum(int[] randomNumbers){
    for (int i = 0; i < randomNumbers.length; i++) {
        System.out.println("Number " + i + " : " + randomNumbers[i]);
    }
    for (int i = 0; i < 1; i++){
    System.out.println("Single # is: "+randomNumbers[i]); 
}
}
public void searchArray(int[] randomNumbers, int numSearch) {
int count = 0;

for (int i : randomNumbers) {
    if (i == numSearch) {
        count++;
    }
}
if (count == 0) {
    System.out.println("Number # " + numSearch + " was not found!");
} else {
    System.out.println("Number #" + numSearch + " occurred " + count + "              times.");
}
}





public void run() {
    Scanner inputReader = new Scanner(System.in);
    int x = 1;
    do {
        int[] numbers = new int[20];
        numbers = createNum(numbers);
        printNum(numbers);

        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 go = new Main();
    go.run();
}
}

1 个答案:

答案 0 :(得分:0)

printNum()中的此循环看起来很可疑:

for (int i = 0; i < 1; i++){
    System.out.println("Single # is: "+randomNumbers[i]); 
}

它将始终打印randomNumbers的第一个元素。目前尚不清楚你想要什么,但如果我不得不猜测它会是:

int i = RND_GEN.nextInt(randomNumbers.length);
System.out.println("Single # is: " + randomNumbers[i]);

将打印randomNumbers的一些随机元素。或者也许:

int i = 1 + RND_GEN.nextInt(10);
System.out.println("Single # is: " + i);

将打印1到10(含)之间的独立随机数。

P.S。在createNum()的代码中,您还有另一个可疑循环。但是,这个似乎是无害的,因为它只是为randomNumbers[0]指定了第二个随机数。