I'm trying to get five random numbers printed that never repeat, based on a certain range provided by the user. Posted below is the code I have so far. I asked a similar question last night and got some great answers, but now I'm trying to accomplish this using only arrays and loops. Thanks.
package h1p2;
public class test{
public void method (int min, int max){
//Declare and initialize arrays and index variables
int rangeOne[];
int rangeMinMax[];
rangeOne = new int[5];
rangeMinMax = new int[max - min];
int z = min;
int i = 0;
int q = 0;
int rangeLength = rangeMinMax.length;
//need minimum/max differential of 50 or > to execute method
if (max - min < 50){
System.out.println("Please enter numbers with a differential of 50 or greater.");
}
//run if differential checks out
else{
//populate MinMax array with range specified by user
while (i < rangeLength){
rangeMinMax[i] = z;
z++;
i++;
}
}
//pick random number from MinMax array
int randomNumber = (rangeMinMax[(int) (rangeLength * Math.random())]);
int r = 0;
//populate rangeOne array with lotto numbers, forbidding duplicates
while (r < 5){
randomNumber = (rangeMinMax[(int) (rangeLength * Math.random())]);
rangeOne[r] = randomNumber;
randomNumber = (rangeMinMax[(int) (rangeLength * Math.random())]);
if (r == 1 && randomNumber == rangeOne[0]){
r--;
}
if (r == 2 && (randomNumber == rangeOne[0] || randomNumber == rangeOne[1])){
r--;
}
if (r == 3 && (randomNumber == rangeOne[0] || randomNumber == rangeOne[1] ||
randomNumber == rangeOne[2])){
r--;
}
if (r == 4 && (randomNumber == rangeOne[0] || randomNumber == rangeOne[1] ||
randomNumber == rangeOne[2] || randomNumber == rangeOne[3])){
r--;
}
else{
r++;}
}
//create string with results
String results = Integer.toString(rangeOne[0]) + " " + Integer.toString(rangeOne[1])
+ " " + Integer.toString(rangeOne[2]) + " " + Integer.toString(rangeOne[3]) +
" " + Integer.toString(rangeOne[4]);
//print results
System.out.println("MegaNumbers: " + results);
}
}