我需要将一个随机数存储到数组中,然后能够在以后比较数组总和。到目前为止,我有这个:
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 :(得分: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];
}