2014-10-11 62 views
-1

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

'randomNum'是一个随机对象(随机数发生器)。你需要在你的Random对象上调用一个*方法来生成一个整数。 – khelwood 2014-10-11 14:21:55

回答

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

java.util.Random是一个随机数发生器,而不是一个数字。您可以使用它产生像这样的随机整数:

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

java.util.Random是用来产生随机数的类。构造函数不走最小值和最大值作为参数,但nextInt()方法你想要做什么:

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

“随机(长种子)”被广泛用于可重复测试等。 – chrylis 2014-10-11 20:03:06

+0

@chrylis我在哪里使用'随机(长种子)'? – msrd0 2014-10-11 20:04:28

+0

说“构造函数不带参数”是不准确的。当然有一个默认的构造函数,但也有一个常用的构造函数。 – chrylis 2014-10-11 20:13:21

1

你调用Random构造不当,Random(integer1, integer2)不能编译,因为Random没有一个构造函数这需要两个整数参数。

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

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