# Java.util.Random.nextInt() in Java

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!!
```

If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.