Java 如果打印时数组中的int元素等于6,则跳过该元素

Java 如果打印时数组中的int元素等于6,则跳过该元素,java,arrays,int,Java,Arrays,Int,如果该元素的值等于6,则我希望在打印时跳过该元素。你能告诉我哪里错了吗 public class Task3_Killing_6 { public static void main(String[] args) { int[] array = {2,4,5,6,8,6,3,4,6}; int[] killSix = new int [9]; for (int i = 0; i < array.length - 1; i++) {

如果该元素的值等于6,则我希望在打印时跳过该元素。你能告诉我哪里错了吗

public class Task3_Killing_6 {

    public static void main(String[] args) {

        int[] array = {2,4,5,6,8,6,3,4,6};
        int[] killSix = new int [9];

        for (int i = 0; i < array.length - 1; i++) {
            if(array[i] == 6){
                continue;
            } else {
                killSix[i] = array[i]; 
            }

        }

        System.out.println(java.util.Arrays.toString(killSix));
    }

}
我想成为

[2, 4, 5, 8, 3, 4]

这是因为数组是用9个元素初始化的,它们都得到默认值(即0)

我们需要使用列表,因为我们不知道大小。这应该可以解决这个问题:

public static void main(String[] args) {

        int[] array = { 2, 4, 5, 6, 8, 6, 3, 4, 6 };
        List<Integer> list = new ArrayList<>(); 

        for (int i = 0; i < array.length - 1; i++) {
            if (array[i] == 6) {
                continue;
            } 
            list.add(array[i]);
        }

        System.out.println(list);
    }
publicstaticvoidmain(字符串[]args){
int[]数组={2,4,5,6,8,6,3,4,6};
列表=新的ArrayList();
for(int i=0;i
这是因为数组是用9个元素初始化的,它们都得到默认值(即0)

我们需要使用列表,因为我们不知道大小。这应该可以解决这个问题:

public static void main(String[] args) {

        int[] array = { 2, 4, 5, 6, 8, 6, 3, 4, 6 };
        List<Integer> list = new ArrayList<>(); 

        for (int i = 0; i < array.length - 1; i++) {
            if (array[i] == 6) {
                continue;
            } 
            list.add(array[i]);
        }

        System.out.println(list);
    }
publicstaticvoidmain(字符串[]args){
int[]数组={2,4,5,6,8,6,3,4,6};
列表=新的ArrayList();
for(int i=0;i
最好使用
列表

注意:当您使用
继续
时,就不再需要
其他

public static void main(String[] args) throws Exception {
    int[] array = {2,4,5,6,8,6,3,4,6};
    List<Integer> killSix = new ArrayList<>();
    for (int i = 0; i < array.length - 1; i++) {
        if(array[i] == 6){
            continue;
        }
        killSix.add(array[i]);
    }
    System.out.println(killSix);
}

最好使用
列表

注意:当您使用
继续
时,就不再需要
其他

public static void main(String[] args) throws Exception {
    int[] array = {2,4,5,6,8,6,3,4,6};
    List<Integer> killSix = new ArrayList<>();
    for (int i = 0; i < array.length - 1; i++) {
        if(array[i] == 6){
            continue;
        }
        killSix.add(array[i]);
    }
    System.out.println(killSix);
}

核心问题是对新旧数组使用了相同的索引。这将强制新数组具有9个元素,但具有0个元素,而以前只有6个元素

相反,新数组必须有自己的索引系统,或者只使用内置的数组构建函数

而且,你在工作中有一种严重的“代码气味”

任何时候你有一句话,比如“如果这个,什么也不要做;否则做点什么”,你几乎肯定会颠倒你的逻辑

最后,请检查循环终止条件:我认为您提前停止了一个元素。切换数组中的最后两个元素作为测试

将killSix初始化为空数组。然后更改中央循环:

for (int i = 0; i < array.length; i++) {
    if(array[i] != 6) {
        killSix.add(array[i]);
    }
for(int i=0;i
核心问题是对旧数组和新数组使用了相同的索引。这迫使新数组包含9个元素,但使用了0,而以前只有6个元素

相反,新数组必须有自己的索引系统,或者只使用内置的数组构建函数

而且,你在工作中有一种严重的“代码气味”

任何时候你有一句话,比如“如果这个,什么也不要做;否则做点什么”,你几乎肯定会颠倒你的逻辑

最后,请检查循环终止条件:我认为您提前停止了一个元素。切换数组中的最后两个元素作为测试

将killSix初始化为空数组。然后更改中心循环:

for (int i = 0; i < array.length; i++) {
    if(array[i] != 6) {
        killSix.add(array[i]);
    }
for(int i=0;i
这是我的家庭作业(我是新手),与我的基本知识有关这是我的家庭作业(我是新手),与我的基本知识有关这是我的家庭作业(我是新手),与我的基本知识有关这是我的家庭作业(我是新手),与我所掌握的基本知识有关