我试图用java中的“0”替换Evens,我做错了什么?

时间:2015-02-15 21:47:38

标签: java eclipse

public static int[] replaceEvens(int[] a)  {
    int e[] = new int[a.length];
    // TODO Insert code here
    for (int i = 0; i < a.length; i++){
        if( e[0]%2 == 0){
            i = 0;
        }
    }

    return e;
}

我相信这段代码是正确的,但我对数组中的所有数字都是0 数组是{5,15,24,35,2,7,8}

2 个答案:

答案 0 :(得分:2)

我相信你的代码不正确 首先,你不会得到一个无限循环是非常令人惊讶的。在for-loop中没有弄乱循环变量。如果您想这样做,请使用while循环 第二点是你的if语句包含e,它直到那个未初始化的点,因此只包含变量= 0 第三点:你总是检查相同的值e [0],所以你只检查每次迭代中数组e的第一个值

我希望现在能帮助你自己纠正代码...... (另请参阅beresfordt的回答)

答案 1 :(得分:1)

有几个问题;

  • e []没有填充任何值,只是用
  • 的长度进行初始化
  • 你在if语句中将i设置为等于零,你可能意味着设置e [i] = 0
  • 你只是比较e [0]%2 == 0,你可能意味着比较e [i]%2 == 0

将你想写的for循环放在一起可能是:

int e[] = a.clone();

for (int i = 0; i < a.length; i++){
    if( e[i]%2 == 0){
        e[i] = 0;
    }
}