我正在寻找一种聪明的方式来递增,然后递减计数器变量。我希望计数器变量从低值开始增加,并向更高值增加。一旦达到较高值,计数器将递减,直到达到较低值。一旦达到较低的值,计数器再次增加到更高的值......我想你明白了。我们如何增加然后递减没有条件的计数器?
我工作的AA canvas animation,我想使用一些小聪明,而无需使用if
或其他条件测试:
这里是处理计数器变量的条件逻辑:
incrementing = true
foo = ->
length += 1 if incrementing
length -= 1 if not incrementing
incrementing = false if length > 100
incrementing = true if length < 1
最初,我想我可以使用模数。但是,模除法只会将计数器重置为较低的值 - 一旦计数器达到最高值,它不会使计数器递减。
0 % 10 = 0
1 % 10 = 1
2 % 10 = 2
3 % 10 = 3
4 % 10 = 4
5 % 10 = 5
6 % 10 = 6
7 % 10 = 7
8 % 10 = 8
9 % 10 = 9
10 % 10 = 0
11 % 10 = 1
12 % 10 = 2
13 % 10 = 3
我确定必须有一种方法来做到这一点,而不使用条件测试。假设底部值为0,顶部值为10,则该方法应输出以下内容。
? = 0
? = 1
? = 2
? = 3
? = 4
? = 5
? = 6
? = 7
? = 8
? = 9
? = 8
? = 7
? = 6
? = 5
'+ 1'需要一个完全没有问题的解决方案,纯粹是为了让你的代码更漂亮。这就是我们学习CoffeeScript的原因。 – 2014-10-29 15:42:52