Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在带有循环的数组中存储随机数_Java_Arrays_For Loop - Fatal编程技术网

Java 在带有循环的数组中存储随机数

Java 在带有循环的数组中存储随机数,java,arrays,for-loop,Java,Arrays,For Loop,我需要将一个随机数存储到一个数组中,然后能够在以后比较数组和。到目前为止,我有: public class Die { private int dieValue = 0; private Random randomNumbers = new Random(); public Die() { } public void rollDie() { dieValue = randomNumbers.nextInt(6*1); } public void displayD

我需要将一个随机数存储到一个数组中,然后能够在以后比较数组和。到目前为止,我有:

public class Die {
    private int dieValue = 0;
    private Random randomNumbers = new Random();
    public Die() {
}

public void rollDie() {
    dieValue = randomNumbers.nextInt(6*1);
}
public void displayDie() {
    int[] die = new int[3];
    for(int counter = 0; counter<die.length; counter++ ) {
        rollDie();
        die[counter] = dieValue;
    }
    System.out.print("Your Dies are: " + die[1] + " and " + die[2] + " and " 
    + die[3]);
    dieValue = die[1] + die[2] + die[3];
}
公共类死亡{
私有值=0;
私有随机数=新随机数();
公众死亡(){
}
公共无效rollDie(){
dieValue=随机数。下一个(6*1);
}
公共空间{
int[]模具=新的int[3];

对于Java中的(int counter=0;counter,数组从索引0开始,因此大小为3的数组(如您所做)将具有索引0,1,2。超出范围是因为您试图使用索引1,2,3(3不存在)


另外,您是说您需要在以后访问这些值,因此您可能应该使用该方法声明数组,以便在该方法完成后它仍然存在(刚才,由于变量的范围,它将在displayDie()完成后消失)

当您试图访问存储在数组中的第一个值时,索引应为0,在上面的代码中,您尝试访问3个值,分别为
die[1]
die[2]
die[3]
,但您需要以
die[0]
die[1]
die[2]的形式访问它们

displayDie()方法中的die数组的索引已关闭,Java中的数组索引从0开始。第一个值将是die[0],而不是die[1]。

您拥有的最后一行

dieValue = die[1] + die[2] + die[3];
假设是

dieValue = die[0] + die[1] + die[2];
因为没有死亡[3]
,所以会出现错误

您可以做什么,循环数组会更好

for(int i=0; i< die.length; i++){
   dieValue +=die[i];
}
for(int i=0;i