使用for-statement

时间:2016-11-05 21:34:17

标签: java arrays

请参阅下面的代码。

任务是制作替换用户插入的元素的代码,并且只能替换for-statement(这是任务要求)。剩下的元素将被保存。例如。当输入为“1”时,预期以下输出为“0 2 3 4”

请帮助修改后续行为的for-statement  “System.out.println(”要删除的以下元素“+ removedElement);”。

如果可能,请在“<”时告知两个选项和“>”符号可以使用。

import java.util.Scanner;
public class MainClass {

public static void main(String[] args) {


    int baseArray [] = {0, 1, 2, 3, 4};

    System.out.println("Existing array:");

    for(int i = 0; i < baseArray.length; i++){ 
        System.out.println(baseArray[i]);
    }

    System.out.println("Please indicate number of element to be deleted");

    Scanner scr = new Scanner (System.in);

    int removedElement = scr.nextInt();

    System.out.println("The following element to de deleted "+removedElement);

    for (int i = baseArray.length; i>removedElement; i--){
        **baseArray[i]=baseArray[i];**

    }

    scr.close();

    for(int i = 0; i < baseArray.length-1; i++){ 
        System.out.println(baseArray[i]);
    }

}

}

1 个答案:

答案 0 :(得分:1)

似乎通过&#34;删除&#34;一个元素, 你想通过将所有元素向后移动一个位置来覆盖要删除的元素。 要做到这一点,从要移除的位置开始, 迭代到最后一个位置之前的一个, 并从下一个位置复制值:

Tag

对于记录,使用System.arraycopy

可以在没有for循环的情况下更快地执行此操作
for (int i = removedElement; i < baseArray.length - 1; i++) {
    baseArray[i] = baseArray[i + 1];
}