我需要在无限循环中有一个有限数量的循环(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;
}