如果一个循环在数组的某个元素上,有没有一种方法可以看到,去做一个特定的动作?
假设我在循环中数组的第一个元素上,将一个标志设置为false?
例如)
int carry = 1;
int arraySum[] = new int[NUM_DIGITS];
boolean carryFlag = false;
for(int i = NUM_DIGITS - 1; i >= 0; i--){
arraySum[i] = array1[i] + array2[i];
if(carryFlag){
arraySum[i] += carry;
carryFlag = false;
}
//if on the last iteration/element of the array,
//arraySum[0], carryFlag = false; and continue;
if(arraySum[i] > 9){
arraySum[i] = arraySum[i] - 10;
carryFlag = true;
}
} 如果我的问题听起来很模糊,很抱歉..但是,如果有一种方法可以使其行为像布尔值: if(arraySum) carryFlag = false
发布于 2014-09-05 13:38:10
我建议删除该标志并为carry设置不同的值
int carry = 0;
int arraySum[] = new int[NUM_DIGITS];
for(int i = NUM_DIGITS - 1; i >= 0; i--){
arraySum[i] = array1[i] + array2[i] + carry;
// check for carry
if(arraySum[i] > 9){
arraySum[i] -= 10;
carry = 1;
} else {
carry = 0;
}
}循环退出后,如果carry不为0,则求和溢出。
发布于 2014-09-05 13:36:07
在这个实现中,您似乎可以测试i的值
像if (i==NUM_DIGITS) carryFlag = false;这样的?
https://stackoverflow.com/questions/25679188
复制相似问题