我正在尋找一種聰明的方式來遞增,然後遞減計數器變量。我希望計數器變量從低值開始增加,並向更高值增加。一旦達到較高值,計數器將遞減,直到達到較低值。一旦達到較低的值,計數器再次增加到更高的值......我想你明白了。我們如何增加然後遞減沒有條件的計數器?
我工作的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