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

Is there any method to organize "cycling" (looping) numbers in c++?

本文关键字:cycling 循环 数字 方法 什么 c++      更新时间:2023-10-16

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

int moveOp = 0;
while (1) {
//some operations with moveOp here
moveOp++;
if(moveOp>3) {
moveOp = 0;
}
}

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

这将起作用:

moveOp = (moveOp + 1) % N;

如果您的 NUM 是 2 的幂,您也可以使用位字段

struct {
unsigned moveOp:2;
}m;
m.moveOp++;
for(int i = 0; ; i = (i + 1) % 4) {
// your code goes here
}

我认为模运算符就是您正在寻找的。 下面是如何使用它的示例:

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