复制和修改数组元素

时间:2016-03-12 02:41:42

标签: java arrays loops

我必须为一个想要在输出中使用oldScores而不是newScores[0] = 20newScores[3] = 10的数组编写一个循环。 我在测试{10, 20, 30, 40,}时通过了我的第一次运行。期望输出:20 30 40 10。 当它通过第一次测试时,它会再次使用oldScores = {199}对其进行测试,期望输出只有199

     public class StudentScores {
      public static void main (String [] args) {
      final int SCORES_SIZE = 4;
      int[] oldScores = new int[SCORES_SIZE];
      int[] newScores = new int[SCORES_SIZE];
      int i = 0;

      oldScores[0] = 10;
      oldScores[1] = 20;
      oldScores[2] = 30;
      oldScores[3] = 40;

     /* solution goes here */

     for (i = 0; i < SCORES_SIZE; ++i) {
     System.out.print(newScores[i] + " ");
     }
     System.out.println();

    return;
     }
    }

我使用的代码在这里

 for(i=0; i<SCORES_SIZE -1; i++){
  newScores[i] = oldScores[i +1];
  newScores[3] = oldScores[0];
 }

顺便说一下,其余代码无法更改,只能更改解决方案。

2 个答案:

答案 0 :(得分:1)

您似乎走在了正确的轨道上,但是您的解决方案逻辑过于复杂。这是一个更简单的选项:

System.arraycopy(oldScores, 0, newScores, 0, oldScores.length); // create copy of oldScores and place it in newScores.
newScores[0] = 20;
newScores[3] = 10;

或者,如果您不想使用System.arraycopy(),则只需迭代每个元素即可复制数组。例如,

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

答案 1 :(得分:1)

您似乎试图通过旋转数组<div class="switch"> <input id="cmn-toggle-1" class="cmn-toggle cmn-toggle-yes-no" type="checkbox" data-click-state="1"> <label for="cmn-toggle-1" data-on="Color" data-off="B&W" data-click-state="1"></label> </div> 中的元素来创建数组data-click-state="1"。 并且您不需要在每个循环中执行newScores,只需执行一次。

以下解决方案适用于给定oldScores

的数组
newScores[3] = oldScores[0];