当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java Java.util.Random.nextInt()用法及代码示例


生成随机数本身具有良好的实用价值,并且通过使用函数实现随机数可以证明是非常有用的。 Java在其语言中已经将整个库专用于随机数,从而看到了它在日常编程中的重要性。本文讨论了nextInt()。

  1. java.util.Random.nextInt():nextInt()用于从此随机数生成器的序列中获取下一个随机整数值。
    Declaration:
    public int nextInt()
    参数:
    NA
    返回值:
    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
    
  2. java.util.Random.nextInt(int n):nextInt(int n)用于获取介于0(含)和此参数(n)中所传递的数字(不包括)之间的随机数。
    Declaration:
    public int nextInt(int n)
    参数:
    n: This is the bound on the random number to be returned. Must be positive.
    返回值:
    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)

Practical Applications

产生随机数有许多应用,无论是彩票,赌博还是小规模游戏。下面展示了一个小型骰子游戏,其中2名玩家掷出6分骰子,第一人获得30分,获胜。

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


相关用法


注:本文由纯净天空筛选整理自suman_709大神的英文原创作品 Java.util.Random.nextInt() in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。