不带条件运算符的范围内的增量整数



一个简单的任务-递增1到4之间的整数,初始值1:

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

然而,我想在没有条件的情况下完成它,所以我想好吧,%是解决方案,% 4会给我0到3,加1,就完成了:

i = (i + 1) % 4 + 1

但是,这个表达式只产生值3和1。初始值为1时,2 % 4为2,加1表示最终结果为3。对于3,4 % 4是0,加上1,我们就回到了1。

那么,在没有条件运算符的情况下,在一个表达式中可以做到这一点吗?

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

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

如果你这样修改它,你可以得到你想要的

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

请注意,当您将A除以MOD时,我假设您将把result强制转换为integer。例如,1/4=0.25,强制转换整数后为0。

最新更新