[英]If on a certain element of the array in a loop, do X action
Is there a way to see that, if a loop is on a certain element of an array, to do a specific action? 如果循环在数组的某个元素上,是否有办法执行特定操作?
Say that if I'm on the first element of an array in a loop, set a flag to false? 假设如果我在循环中位于数组的第一个元素上,则将标志设置为false?
ex) EX)
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;
}
}
Sorry if my question sounds rather vague.. But if there's a way around to making it act like a boolean: if(arraySum[0]) carryFlag = false 抱歉,如果我的问题听起来不太清楚。。但是,如果有办法使它像布尔值一样运行:if(arraySum [0])结实标记=假
I would suggest eliminating the flag and setting different values for carry
: 我建议取消该标志并为
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;
}
}
After the loop exits, if carry
is not 0, then the summation overflowed. 循环退出后,如果
carry
不为0,则总和溢出。
It seems like in this implementation, you can test the value of i
? 似乎在此实现中,您可以测试
i
的值?
Something like if (i==NUM_DIGITS) carryFlag = false;
就像
if (i==NUM_DIGITS) carryFlag = false;
? ?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.