【发布时间】:2021-01-10 04:53:54
【问题描述】:
我试图在一个范围内的最小值和最大值之间循环一个整数,例如 0-2,这样如果我增加或减少该值,它总是在该范围内。 任何超过最大值的东西都应该捕捉到最小值,任何低于最小值的东西都应该捕捉到最大值。 以下代码适用于递增,但不适用于递减:
current=(current+1)%(maximum+1);
是否有类似的技巧也适用于递减?
【问题讨论】:
-
目前的代码执行增量并将所有内容包装在一起时,您的要求并不十分清楚。如果您希望在某个范围内强制一个值(可能已在代码上方某处更改),双三元运算符可以做到这一点。
-
让
inc = 1或-1。current=(current+inc +maximum+1)%(maximum+1);
标签: c