我几乎不好意思问这个问题,因为它可能非常明显——但我看不出有一条出路,我怀疑有一条。
我有一个变量,我需要从中添加/减去值 - 但我想将它保持在一个值范围内,在任一端循环 - 例如
范围是 0-3,所以值是 0,1,2,3,0,1,2,3 - 这就是
x = (x + val) MOD 4
然而,当 val 为负时,我们应该看到 0,3,2,1,0,3,2,1 并且解决方案远没有那么优雅
x = (x + val) MOD 4
if (x < 0) x = 4 + x;
这行得通,但它很笨重,我不禁想到可能有一个“单线”解决方案 - 但如果我能想到它,我该死的?:)
准备尴尬