java从20个整数的数组中生成额外的随机数
我有这个问题,我需要生成一个额外的单一随机数,具有相同的1-10跨度。我已经有了随机生成器的代码,它可以生成我的20个整数随机数数组,但是我如何在相同的方法中在相同的范围内生成单个随机数呢。这就是我到目前为止得到的结果,它不断地从我的20整数数组中给我随机数0。提前谢谢
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 楼答案
{}中的这个循环看起来可疑:
它将始终打印
randomNumbers
的第一个元素。不清楚你想要什么,但如果非要我猜的话:它将打印
randomNumbers
的一些随机元素。或者也许:它将打印一个介于1和10(含)之间的独立随机数
另外,在
createNum()
中的代码前面还有另一个可疑循环。然而,这似乎是无害的,因为它只给randomNumbers[0]
分配了第二个随机数