Open In App

Java.util.Random.nextInt() in Java

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Share
Report issue
Report

Generating random numbers themselves have a good utility value and having them achieved by the usage of function can prove to be very useful. Java in its language has dedicated an entire library to Random numbers seeing its importance in day-day programming. nextInt() is discussed in this article.

  1. java.util.Random.nextInt() : The nextInt() is used to get the next random integer value from this random number generator’s sequence.

    Declaration : 
    public int nextInt()
    Parameters : 
    NA
    Return Value : 
    The method call returns the next integer number from the sequence
    Exception : 
    NA
    

    The following example shows the usage of java.util.Random.nextInt()




    // Java code to demonstrate the working
    // of nextInt()
    import java.util.*;
    public class NextInt1 {
        public static void main(String[] args)
        {
      
            // create random object
            Random ran = new Random();
      
            // generating integer
            int nxt = ran.nextInt();
      
            // Printing the random Number
            System.out.println
            ("The Randomly generated integer is : " + nxt);
        }
    }

    
    

    Output:

    The Randomly generated integer is : -2052834321
    
  2. java.util.Random.nextInt(int n) : The nextInt(int n) is used to get a random number between 0(inclusive) and the number passed in this argument(n), exclusive.

    Declaration : 
    public int nextInt(int n)
    Parameters : 
    n :  This is the bound on the random number to be returned. Must be positive.
    Return Value : 
    Returns a random number.
    between 0 (inclusive) and n (exclusive).
    Exception : 
    IllegalArgumentException :  This is thrown if n is not positive.
    

    The following example shows the usage of java.util.Random.nextInt(int n)




    // Java code to demonstrate the working
    // of nextInt(n)
    import java.util.*;
    public class NextInt2 {
        public static void main(String args[])
        {
      
            // create random object
            Random ran = new Random();
      
            // Print next int value
            // Returns number between 0-9
            int nxt = ran.nextInt(10);
      
            // Printing the random number 
            // between 0 and 9
            System.out.println
            ("Random number between 0 and 10 is : " + nxt);
        }
    }

    
    

    Output:

    Random number between 0 and 9 is : 4
    
Exception

IllegalArgumentException : This occurs when the argument passed is not positive.
An example to illustrate the Exception generated when n is not a positive number:




// Java code to demonstrate the Exception
// of nextInt(n)
import java.util.*;
public class NextInt2 {
    public static void main(String[] args)
    {
  
        // create random object
        Random ran = new Random();
  
        // generating number between 0 and -12345
        // Raises Runtime error, as n is negative.
        int nxt = ran.nextInt(-12345);
  
        System.out.println
        ("Generated Random number is : " + nxt);
    }
}


Runtime Errors:

Exception in thread "main" java.lang.IllegalArgumentException: bound must be positive
    at java.util.Random.nextInt(Random.java:388)
    at NextInt2.main(NextInt2.java:14)

Practical Applications

Generating Random numbers have numerous applications, be it lottery, gambling or small scale gaming. A small Dice game have been demonstrated below in which a 6-mark Dice is thrown by 2 players, person securing 30 points 1st, wins.




// Java code to demonstrate the Application
// of nextInt(n)
import java.util.*;
public class NextIntAppli {
    public static void main(String[] args)
    {
  
        int sum = 0, sum1 = 0, count = 0, count1 = 0;
        int turn = 0;
  
        // creating random object
        Random ran = new Random();
        int flag = 0;
  
        while (true) {
            if (turn % 2 == 0) {
  
                int p1 = ran.nextInt(6);
                sum += p1;
                System.out.printf
                ("Player 1 after turn %d is : %d\n", turn, sum);
            }
            else {
  
                int p2 = ran.nextInt(6);
                sum1 += p2;
                System.out.printf
                ("Player 2 after turn %d is : %d\n", turn, sum1);
            }
            if (sum >= 30) {
                flag = 1;
                break;
            }
            if (sum1 >= 30) {
                flag = 2;
                break;
            }
            turn++;
        }
        if (flag == 1)
            System.out.println("\nPlayer 1 WON!!");
        else
            System.out.println("\nPlayer 2 WON!!");
    }
}


Output:

Player 1 after turn 0 is : 0
Player 2 after turn 1 is : 4
Player 1 after turn 2 is : 2
Player 2 after turn 3 is : 9
Player 1 after turn 4 is : 5
Player 2 after turn 5 is : 9
Player 1 after turn 6 is : 6
Player 2 after turn 7 is : 14
Player 1 after turn 8 is : 8
Player 2 after turn 9 is : 18
Player 1 after turn 10 is : 12
Player 2 after turn 11 is : 21
Player 1 after turn 12 is : 13
Player 2 after turn 13 is : 26
Player 1 after turn 14 is : 18
Player 2 after turn 15 is : 29
Player 1 after turn 16 is : 18
Player 2 after turn 17 is : 34
Player 2 WON!!



Last Updated : 06 Nov, 2019
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads