【问题标题】:Random integer in Java [duplicate]Java中的随机整数[重复]
【发布时间】:2014-12-06 13:53:34
【问题描述】:

这是我得到的问题。 输入 2 个整数(x 和 y)并打印 x 和 y 之间的随机整数。 我想知道为什么我的代码不打印随机整数。 我仍然是java的初学者,任何帮助都会很好。谢谢。

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);
    }
}

【问题讨论】:

  • randomNum 是一个 Random 对象(随机数生成器)。您需要在 Random 对象上调用 方法 以生成整数。

标签: java


【解决方案1】:

试试下面的代码。 randomize(int x, int y) 中的参数,其中x 是最小数量 y 是最大数量。

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);
    }
}

【讨论】:

    【解决方案2】:

    您错误地调用了Random 构造函数,Random(integer1, integer2) 将无法编译,因为Random 没有带有两个整数参数的构造函数。

    如果你想在一个范围内创建一个随机数,使用这个:

    int rand = randomNum.nextInt((integer2 - integer1) + 1) + integer1
    

    【讨论】:

      【解决方案3】:

      java.util.Random 是一个用于生成随机数的类。构造函数不会将最小值和最大值作为参数,但 nextInt() 方法可以满足您的要求:

      randomNum = new Random();
      System.out.println("Random number: " + random.nextInt(integer1, integer2));
      

      【讨论】:

      • Random(long seed) 广泛用于可重复测试等。
      • @chrylis 我在哪里使用Random(long seed)
      • 说“构造函数不带参数”是不准确的。当然,有一个默认构造函数,但也有一个常用的构造函数。
      • @chrylis 好的,我改了
      【解决方案4】:

      java.util.Random 是一个随机数生成器,而不是一个数字。您可以使用它生成一个随机整数,如下所示:

      Randrom rand = new Random();
      int randomNum = x + rand.nextInt(y - x + 1);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-12
        • 1970-01-01
        • 2011-08-18
        • 2015-11-30
        • 2018-09-14
        相关资源
        最近更新 更多