使用循环在数组中存储随机数

时间:2018-04-04 22:31:59

标签: 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 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];
}

这给我一个错误,说数组索引超出范围,我不知道如何正确编码这个...任何提示都会很棒!

4 个答案:

答案 0 :(得分:1)

在Java中,数组从索引0开始,因此大小为3的数组(就像你所做的那样)将具有索引0,1,2。出界是因为您尝试使用索引1,2,3(3不存在)。

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

答案 1 :(得分:1)

当您尝试访问存储在数组中的第一个值时,索引应为0 ,在上面的代码中,您尝试将{3}值作为die[1],{{1 }}和die[2],但您需要以die[3]die[0]die[1]的身份访问它们。

答案 2 :(得分:1)

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

答案 3 :(得分:0)

你有最后一行

dieValue = die[1] + die[2] + die[3];

并假设是

dieValue = die[0] + die[1] + die[2];

因为没有die[3]这就是你收到错误的原因

你可以做什么,最好循环数组

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