for (int i = 0; i < numArray.size(); i++) {
    if (numArray.get(i) % 2 == 0) {
        evenSum += numArray.get(i);
        outputArea.append(numArray.get(i) + "\n");
    }
}


有没有办法上线

if (numArray.get(i) % 2 == 0) {


在for循环条件行中?如果是这样,那会比现在更有效吗?

最佳答案

您可以将条件放入for循环中:

for (int i = 0; (i < numArray.size()) && (numArray.get(i) % 2 == 0); i++) {
    evenSum += numArray.get(i);
    outputArea.append(numArray.get(i) + "\n");
}


但是,它将改变循环的作用,因为一旦达到奇数,它将立即停止。那可能是您想要的,也可能不是您想要的,但是绝对与原始代码不同,原始代码贯穿整个数组。

如果您确实想遍历整个数组,则最好使用foreach迭代版本,并让编译器生成最快的代码:

for (int num : numArray) {
    if (num % 2 == 0) {
        evenSum += num;
        outputArea.append(num).append("\n");
    }
}

10-07 22:57