2013-03-27 52 views
0

我有以下循环:环路退出后一次迭代

public int getIsRepeated(int index) 
    { 
     long currentValue = myValues[index - 1]; 
     long previousValue = myValues[index - 2]; 

     int count = 0; 

     for (int i = index - 5; i >= 4; i =- 4) 
     { 
      if (myValues[i] == currentValue && myValues[i - 1] == previousValue) 
       count++; 
     } 

     return count; 
    } 

表被填充有数字,其中数可在4批重复,例如:

 myValues[1] = 29; 
    myValues[2] = 12; 
    myValues[3] = 144; 
    myValues[4] = 123; 
    myValues[5] = 234; 
    myValues[6] = 348; 
    myValues[7] = 666; 
    myValues[8] = 333; 
    myValues[9] = 100; 
    myValues[10] = 500; 
    myValues[11] = 666; 
    myValues[12] = 333; 
    myValues[13] = 100; 
    myValues[14] = 500; 
    myValues[15] = 666; 
    myValues[16] = 333; 
    myValues[17] = 100; 
    myValues[18] = 500; 
    index= 19; 

函数应开始检查重复值并从索引14和13开始,并将它们分别与索引18和17进行比较。循环应该重复一次,以比较索引10和9处的值,但是它会在一次迭代后退出。

我在这里错过了什么?

+0

你为什么在四肢下去?如果这些数字以某种方式关联起来,将它们放在一个复合类型(对象)中并且有一个数组。 – SpacedMonkey 2013-03-27 14:49:27

回答

0

这里是一个错误:

for (int i = index - 5; i >= 4; i =- 4) 

应该

for (int i = index - 5; i >= 4; i -= 4) 
+0

arrghh带有负面副作用的小错字 – 2013-03-27 14:21:18