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");
}
}