2

This is the question that i got. Enter 2 integer (x and y) and print random integer between x and y. I want to know why my code does not print the random integer. I am still a beginner in java, any help would be nice. Thank you.

import java.util.*;
class Random_integer {
    public static void main(String[] args) {
        Random randomNum = new Random();
        Scanner input = new Scanner(System.in);
        int integer1, integer2;
        System.out.print("Enter two integer : \n ");
        System.out.print("\n Integer 1 : ");
        integer1 = input.nextInt();
        System.out.print("\n Integer 2 :");
        integer2 = input.nextInt();
        randomNum = new Random(integer1, integer2);
        System.out.print("\n Random number : " +randomNum);
    }
}
Jerodev
  • 32,252
  • 11
  • 87
  • 108
mina kim
  • 43
  • 4
  • 2
    `randomNum` is a `Random` object (a random number generator). You need to call a *method* on your `Random` object to generate an integer. – khelwood Oct 11 '14 at 14:21

4 Answers4

1

java.util.Random is a class used to generate random numbers. The constructor doesn't take the minimum and maximum value as arguments, but the nextInt() method does what you want:

randomNum = new Random();
System.out.println("Random number: " + random.nextInt(integer1, integer2));
msrd0
  • 7,816
  • 9
  • 47
  • 82
1

You're calling the Random constructor incorrectly, Random(integer1, integer2) will not compile because Random does not have a constructor that takes two integer arguments.

If you want to create a random number in a range, use this:

int rand = randomNum.nextInt((integer2 - integer1) + 1) + integer1
August
  • 12,410
  • 3
  • 35
  • 51
1

Try the code below. The parameters in randomize(int x, int y) where x is minimum number and y is maximum number.

import java.util.*;

class Random_integer
{
    public static void main(String[] args){
        int integer1, integer2;
        Scanner input = new Scanner(System.in); 
        System.out.print("Enter two integer : \n ");
        System.out.print("\n Integer 1 : ");
        integer1 = input.nextInt();
        System.out.print("\n Integer 2 :");
        integer2 = input.nextInt();

        Random_integer ri = new Random_integer();
        ri.randomize(integer1,integer2);
    }

    public void randomize (int x,int y) {
        Random randomNum = new Random();
        int rand = randomNum.nextInt((y-x)+1)+x;
        System.out.print("\n Random number : " +rand);
    }
}
msrd0
  • 7,816
  • 9
  • 47
  • 82
Code Geek
  • 485
  • 1
  • 5
  • 15
0

java.util.Random is a random number generator, not a number. You can use it to generate a random integer like so:

Randrom rand = new Random();
int randomNum = x + rand.nextInt(y - x + 1);
Mureinik
  • 297,002
  • 52
  • 306
  • 350