Java 将random.nextInt()作为参数传递会导致奇怪的问题
我试图将一个随机整数传递给构造函数Java 将random.nextInt()作为参数传递会导致奇怪的问题,java,random,parameters,Java,Random,Parameters,我试图将一个随机整数传递给构造函数 hotels[2] = new Hotel(random.nextInt(10)+30, random.nextInt()+100, random.nextInt()+20, random.nextInt()+200, random.nextInt()+10, random.nextInt()+300); 然而,在DataPoint构造函数中,在内部传递的值是荒谬的,即 Params 1,
hotels[2] = new Hotel(random.nextInt(10)+30, random.nextInt()+100,
random.nextInt()+20, random.nextInt()+200,
random.nextInt()+10, random.nextInt()+300);
然而,在DataPoint构造函数中,在内部传递的值是荒谬的,即
Params 1, 3, 5: 38 -695807826 -2078518332
得到-695807826是没有意义的。由于随机性,号码应该在20到40之间。nextInt+20我意识到呼叫时出现了问题
random.nextInt()+20
在参数列表中
当我在方法调用之前生成随机数时,我会得到正常的结果
a = random.nextInt(10)+30;
b = random.nextInt(10)+20;
c = random.nextInt(10)+10;
...
hotels[2] = new Hotel(a, b, c, ...);
如果执行random.nextInt+300之类的操作,并且random.nextInt调用的结果在最大整数值的300范围内,则会出现溢出,结果将被解释为负数。这只是因为在第一个参数之后,您忘记了向nextInt添加参数 你的电话应该是:
hotels[2] = new Hotel(random.nextInt(10)+30, random.nextInt(10)+100,
random.nextInt(10)+20, random.nextInt(10)+200,
random.nextInt(10)+10, random.nextInt(10)+300);
你知道你在这里举的例子与你在问题中所说的不同,对吗?随机。下一个10+10和随机。下一个10+10不要做同样的事情…哦,我不知道我怎么会错过。