如何实现永远循环运行的循环算法?

for (int i = 0; ;i++){
    roundRobinIndex = i % numberOfWorkers;
}

上面方法的问题是integer overflow问题。也可以通过检查i的值来实现:
for (int i = 0; ;i++){
    roundRobinIndex = i % numberOfWorkers;
    if i == maxNumber{
        i = 0;
    }
}

但是这种方式很难看。也许还有更优雅的方式?

最佳答案

为什么不 ?

int numberOfWorkers = 10
int roundRobinIndex = numberOfWorkers - 1
while(true){
    roundRobinIndex = (roundRobinIndex + 1) % numberOfWorkers
}

或带有for循环
for (int i = 0; ;i = (i + 1) % numberOfWorkers){
    roundRobinIndex = i;
}

现在我们可以摆脱i

关于c++ - 循环循环算法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51211661/

10-14 13:36
查看更多