我一直在努力让这件事起作用。我希望将1和2添加到从1-7随机生成的数字中,并将其存储在数组中,例如:如果随机数生成器得到3,我希望数组存储3、4和5。
byte[] locationGen = new byte[1];
for(byte i = 0; i < locationGen.length; i++) {
locationGen[i] = (byte)(Math.random()*7+1);
}
byte[] locations = new byte[3];
locations = (locationGen, locationGen+1, LocationGen+2);除了位置变量之外,一切都按预期工作,我不知道该怎么做。
发布于 2014-08-31 10:18:50
我不认为您有使用byte类型的真正动机,而且使用byte会使Java代码变得不必要的复杂。我建议以下解决办法:
int[] locations = new int[3];
for (int locationGen = (int)(Math.random()*7) + 1, i = 0; i < locations.length; i++)
locations[i] = locationGen + i;如果在某个时候确实需要byte,那么在最后一刻转换为它。
发布于 2014-08-31 09:33:56
您可以用{} (而不是() )来初始化数组。
您的初始循环没有意义,因为数组中只有一个位置。你可以这样做:
byte locationGen = (byte)(Math.random()*7+1);
byte[] locations = {locationGen, (byte)(locationGen+1), (byte)(locationGen+2)};要注意的是:
3从声明中删除。这是不必要的,如果您更改初始化,它将成为维护问题。LocationGen L- Java区分大小写)。int (1或2)添加byte的结果是int,所以需要进行回滚。发布于 2014-08-31 09:35:21
我会这样做,除非您有正当理由创建一个位置字节数组来存储随机的locationGen字节:
byte locationGen = (byte) (Math.random()*7+1);
byte[] locations = new byte[]{locationGen, (byte) (locationGen+1),
(byte)(locationGen+2)};在您发布的解决方案中,您得到了一个错误,因为在进行和之前没有访问locationGen数组位置(locationGen),这可能就是出现错误的原因。
https://stackoverflow.com/questions/25590597
复制相似问题