有没有什么方法可以在c ++中组织“循环”(循环)数字?

时间:2017-07-15 15:08:45

标签: c++

我需要在无限循环中有一个有限数字(0到3)的循环。所以我使用这段代码:

int moveOp = 0;

while (1) {
//some operations with moveOp here
moveOp++;

if(moveOp>3) {
        moveOp = 0;
    }

}

但也许有一种方法可以使用一种数据类型,增量运算符在没有手写条件的情况下跳转到零?

4 个答案:

答案 0 :(得分:2)

这样可行:

moveOp = (moveOp + 1) % N;

答案 1 :(得分:2)

如果您的NUM为2的幂,您也可以使用位域

struct {
   unsigned moveOp:2;
}m;

m.moveOp++;

答案 2 :(得分:2)

for(int i = 0; ; i = (i + 1) % 4) {
    // your code goes here
}

答案 3 :(得分:1)

我认为Modulus运营商正是您所寻找的。 以下是如何使用它的示例:

int moveOp = 0;
int Num = 4;

while (1) {
       ++moveOp;
       moveOp = moveOp%Num;
}