Java 如何重新运行静态整数数组?
以下是我要重新运行的阵列:Java 如何重新运行静态整数数组?,java,arrays,random,static,Java,Arrays,Random,Static,以下是我要重新运行的阵列: public static int[] rollDice(int dice[]) { // generate 5 random numbers / update dice array for (int i = 0; i < dice.length; i++) { dice[i] = (int)(Math.random() * 6 + 1); } return dice; } publicstaticint[]滚
public static int[] rollDice(int dice[]) {
// generate 5 random numbers / update dice array
for (int i = 0; i < dice.length; i++) {
dice[i] = (int)(Math.random() * 6 + 1);
}
return dice;
}
publicstaticint[]滚动骰子(int骰子[]){
//生成5个随机数/更新骰子数组
for(int i=0;i
如果我想重置这个数组并找到新的随机数,我该怎么做?我尝试了
rollDice()
public static final int[]骰子=新int[5];
然后使用您的方法滚动/重新滚动骰子,否则只需访问dice
publicstaticvoidrolldice(){
//生成5个随机数/更新骰子数组
for(int i=0;i
<>有趣的事实:java没有C++和C++所做的静态函数变量。在这些语言中,它可能是这样的:
(我为你们这些java家伙编写了一个java函数)
publicstaticint[5]rollDice(布尔重滚){
静态最终整数[]骰子=新整数[5];
if(重新滚动)(int i=0;i
如您所见,静态变量可以嵌入到这些函数中。如果你问我,这是一个巨大的缺点,Java不支持这一点,因为我一直在使用它来从类名称空间中隐藏它们。返回数组没有意义,因为在调用方法rollDice()时已经有了对数组的引用
数组是通过引用而不是通过值发送的,这意味着您不是像处理int一样处理副本,而是修改原始数组
将返回类型更改为void并删除返回,您的代码应该可以正常工作。您可以每次获得一个带有随机数的新动态长度数组,并且可以通过调用rollDice(整数值)进行访问。
You can get every time a new dynamic length array with random numbers, and you can access by call rollDice(integer value).
public static int[] rollDice(int length) {
final int dice[] = new int [length];
// generate array with random values
for (int i = 0; i < length; i++) {
dice[i] = (int)(Math.random() * length + 1);
}
return dice;
}
公共静态int[]滚动骰子(int长度){
最终整数骰子[]=新整数[长度];
//使用随机值生成数组
for(int i=0;i
您遇到了什么错误?另外,这是一个方法,而不是数组。你不运行数组你认为int dice[]
atrollDice(int dice[])
代表什么?旁注:请使用int[/code>而不是int dice[]
。后者是针对C程序员的,而不是Java中的惯例。您得到的错误可能与方法的定义无关;如果您更新了问题以列出精确的(复制/粘贴)错误,这会有所帮助。它在rollDice(int dice[]){…}
中的用途是什么?这与rollDice(){..}
之间有什么区别?问题中的方法签名不同。它之前被隐藏了,所以你可能没有看到它dice
实际上是方法rollDice
@用户的一个参数。看起来OP code只是试图解决他的问题,而不是某种强制方法。
You can get every time a new dynamic length array with random numbers, and you can access by call rollDice(integer value).
public static int[] rollDice(int length) {
final int dice[] = new int [length];
// generate array with random values
for (int i = 0; i < length; i++) {
dice[i] = (int)(Math.random() * length + 1);
}
return dice;
}