使用其他元素修改阵列元素



我很难弄清楚我的输出没有做正确的事情。这是我为写的一段代码

final int SCORES_SIZE = 4;
int[] bonusScores = new int[SCORES_SIZE];
int i;
for (i = 0; i < bonusScores.length; ++i) {
bonusScores[i] = scnr.nextInt();
}

for (i = 0; i < 3; ++i) {
bonusScores[i] = bonusScores[i+1]; 
}
for (i = 0; i < bonusScores.length; ++i) {
System.out.print(bonusScores[i] + " ");
}
System.out.println();
}
}

现在我得到的输出是|20 30 40 40|,而不是|30 50 70 40|。我在第二个for循环中遇到了错误,但我不知道如何纠正。

您的循环

for (i = 0; i < 3; ++i) {
bonusScores[i] = bonusScores[i+1]; 
}

正是按照你的指示去做:将第二个元素复制到第一个元素上,将第三个元素复制在第二个上,等等。因此[10,20,30,40]变成[20,20,30,40]。

根据您对预期输出的描述,我猜您是想使用+=而不是=

可能为时已晚,但这就是我的代码:

for (i = 0; i < 3; ++i) 
{
bonusScores[i] = bonusScores[i] + bonusScores[i+1]; 
}

我添加了bonusScores[I]=bonusScores[I]+bonusScore[I+1]

或者只添加+=

最新更新