A number generator, but within the range that the user enters. Java
Hi i am new to java and stackoverflow. I am trying to create a program that asks the user to enter a range and it will generate a list of random numbers within the user's range. It looks like this.
package numbergenerator;
import java.util.Random;
import java.util.Scanner;
public class numbergenerator {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
Random r = new Random();
int int1;
int int2;
int answer;
int numbers;
System.out.println("Enter your min range number: ");
int1 = s.nextInt();
System.out.println("Enter your max range number: ");
int2 = s.nextInt();
System.out.println("How many numbers do ya want? ");
numbers = s.nextInt();
for(int counter=0; counter<numbers; counter++);
answer = int1 < r > int2;
//this doesn't work.
//And i know it is improper syntax, but then what is the proper syntax?
System.out.println(answer);
}
}
I am having trouble getting a random number. Let me know if you have an idea. Alternatively, I could use a for loop, but just let me know. Thank you.
source to share
try it
package numbergenerator;
import java.util.Random;
import java.util.Scanner;
public class numbergenerator {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
Random r = new Random();
int int1;
int int2;
int answer;
int numbers;
System.out.println("Enter your min range number: ");
int1 = s.nextInt();
System.out.println("Enter your max range number: ");
int2 = s.nextInt();
System.out.println("How many numbers do ya want? ");
numbers = s.nextInt();
for(int counter=0; counter<numbers; counter++){
answer =r.nextInt(int2-int1)+int1;
System.out.println(answer);
}
}
}
source to share
Calculate the range of numbers you need ...
// Make sure we only have positive numbers...not sure if that a requirement
// bet lets make life easier
int int1 = Math.abs(int1);
int int2 = Math.abs(int2);
int range = Math.abs(int2 - int1);
Calculate your random number in this range ...
int answer = r.nextInt(range);
Add your bottom range to it ...
answer += Math.min(int1, int2);
nb: You should be aware that this will only generate random numbers from min
to max - 1
. If you want to include max
, you need to add 1
to the range ...
source to share
Say you have the following values:
int max;
int min;
If you want to get a new random number between max and min, you need to understand how the Random class works.
nextInt (int n) returns a number greater than or equal to zero and less than (but not equal to) n.
Therefore, if you want to get a number between max and min, including both, you will need to do the following:
Random r = new Random();
int randomNumber=r.nextInt(max-min+1)+min;
source to share
package numbergenerator;
import java.util.Random;
import java.util.Scanner;
public class numbergenerator {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
Random rn = new Random();
int int1;
int int2;
int answer;
int numbers;
System.out.println("Enter your min range number: ");
int1 = s.nextInt();
System.out.println("Enter your max range number: ");
int2 = s.nextInt();
System.out.println("How many numbers do ya want? ");
numbers = s.nextInt();
for(int counter=0; counter<numbers; counter++);
{
int n = int1 - int2 + 1;
int i = rn.nextInt() % n;
randomNum = int1 + i;
System.out.println(randomNum );
}
}
}
source to share