2016-02-02 76 views
-4

我想每隔3次觸發一次事件。每隔3次觸發一次

for (i = 0; i < 5000; i++) { 
    // When i == 3, == 6, == 9 etc. 
    if() { 
     trigger(); 
    } 
} 

我無法弄清楚如何表示它的代碼,我的大腦被卡住。

除非我寫:if i == 3if i == 6 etc.

但由於我是無限的,我可以寫幾百萬的這些。

+0

有人上個月甚至有完全相同的問題:http://stackoverflow.com/q/34660817/218196。 –

+0

i ++是你在大多數通用循環中看到的東西,但它實際上可以是你想要的任何東西。 'i ++','i - ','i + =#'或'i - =#'。最後兩個是對'i = i +#'或'i = i-#'編碼的簡寫。「 – JoeL

+0

沒有必要對smartasses進行downvote,你會從中得到一些樂趣嗎? –

回答

3

使用模運算符:當i爲0,3,6

if (i % 3 === 0) ... 

條件爲真,...

+1

哈哈,你其實是正確的調用模塊的功能,這就是爲什麼我把我的編輯回滾。從技術上講,它是使用模函數的餘數運算符。 – j08691

5

你可以...

  • 增量i 3 ,而不是1
  • 使用Modulo檢查

所以

for (i = 0; i < 5000; i=i+3) { 
... 
} 

或者

for (i = 0; i < 5000; i++) { 
    // When i == 3, == 6, == 9 etc. 
    if (i % 3 == 0) { 
     trigger(); 
    } 
} 
+1

值得注意的是,如果循環中還有其他東西,這兩種解決方案會有不同的結果。 –