2014-09-24 99 views
1

我必須增加基於外循環的內循環,但是我的邏輯失敗。增量邏輯無法正常工作

int size = currencyList.size(); 

for (int i=0, j=1; i<size; i++) { 
    CurrencyVO currencyVO = currencyList.get(i); 
    obj1[i+2] = currencyVO.getStrDerivedRefDT(); 
    // CurrencySetupVO cureccyCodeDes = currencyExchList.get(k); 

    //if (i==0) 
    obj3[0]=currencyVO.getStrCurrencyCode(); 
    //if (i==1) 
    obj3[1]= currencyVO.getStrCurrencyDesc(); 
    //if (k<size) { 
    obj3[i+2]=currencyVO.getStrExchRate(); 
    //} 
    data.put(j,obj3); 
    data.put(0,obj1); 
    if (i==31) {//***Here for every i=31,62,93 etc J has to increment*** 
     j++; 
    } 
} 

我該如何實現?

+0

加31,也許。 – 2014-09-24 12:22:00

+0

請花費更多時間來良好地設置代碼的格式,使用製表符而不是空格來縮進。此外,請提供一個簡短但完整的程序來演示問題。 – 2014-09-24 12:22:30

回答

6

對於每一個i = 31,62,93等j具有遞增

那麼你的邏輯應該是

if(i!=0 && i%31 ==0){//***Here for every i=31,62,93 etc J has to increment*** 
       j++; 
      } 

也就是說%的modulo operator

+1

除了它也會在0上觸發。我懷疑OP *實際上*希望'i%31 == 30',所以在下一次迭代中,我們將以一個新值開始。雖然很難說。 – 2014-09-24 12:23:32

+1

@JonSkeet爲零添加gaurd。 '對於每個我= 31,62,93等J必須增加'給了我這個想法。 – 2014-09-24 12:25:36

1

如果你想爲每個i = 31,62增加J ...... 然後初始化j = 0並執行檢查

if(i!=0 && i%31 == 0) 
{ 
j++; //j will increase for every i=31,62,..... 
}