在没有条件运算符的情况下递增整数范围

时间:2015-11-28 21:02:27

标签: integer range conditional increment modulo

一个简单的任务 - 增加1到4范围内的整数,初始值为1:

i = (i + 1) < 5 ? i + 1 : 1

但是,我想在没有条件的情况下这样做,所以我认为好的,%是解决方案,% 4会给我0到3,加1并完成:< / p>

i = (i + 1) % 4 + 1

但是,此表达式仅生成值3和1.初始值1 2 % 4为2,为最终结果为3添加1.对于3 4 % 4为0,添加1,我们回到了1.

那么有可能在没有条件运算符的情况下在一个表达式中进行吗?

1 个答案:

答案 0 :(得分:0)

mod运算符实际上是那个简单而强大的表达式

A = A - ((A / MOD)×MOD)

如果你修改它就可以得到你想要的东西

A = A + 1 - ((A / MOD)×MOD)

请注意,当您将A分为MOD时,我假设您将结果转换为整数。例如,1/4 = 0.25,在转换整数后,它为0。