简体   繁体   English

如果在循环中数组的某个元素上,请执行X动作

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM