首页 > 解决方案 > 使用其他元素修改数组元素

问题描述

我无法确定我的输出没有做正确的事情。这是我写的一段代码

         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 循环中遇到错误,但我不确定如何纠正它。

标签: javaarrays

解决方案


你的循环

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

正在做你告诉它做的事情:将第二个元素复制到第一个元素上,将第三个元素复制到第二个元素上,等等。因此 [10,20,30,40] 变为 [20,20,30,40]。

我猜你的意思是做+=而不是=你对预期输出的描述。


推荐阅读