Java中的Java .util.Random.nextInt()
生成随机数本身具有很好的实用价值,并且通过使用函数来实现它们可以证明是非常有用的。 Java在其语言中已将整个库专用于随机数,看到它在日常编程中的重要性。 nextInt() 将在本文中讨论。
- Java.util.Random.nextInt() : nextInt()用于从这个随机数生成器的序列中获取下一个随机整数值。
Declaration : public int nextInt() Parameters : NA Return Value : The method call returns the next integer number from the sequence Exception : NA
以下示例显示了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); } }
输出:
The Randomly generated integer is : -2052834321
- Java.util.Random.nextInt(int n) : nextInt(int n)用于获取介于 0(含)和此参数中传递的数字(n)之间的随机数,不包括。
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.
以下示例显示了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); } }
输出:
Random number between 0 and 9 is : 4
例外
IllegalArgumentException :当传递的参数不是正数时会发生这种情况。
举例说明当 n 不是正数时产生的异常:
// 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);
}
}
运行时错误:
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)
实际应用
生成随机数有许多应用,无论是彩票、赌博还是小型游戏。下面演示了一个小型骰子游戏,其中 2 名玩家掷出 6 点骰子,获得 30 分的人第 1 名获胜。
// 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!!");
}
}
输出:
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!!