Инкрементная логика не работает должным образом

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, возможно.
  • 0
    Пожалуйста, уделите больше времени, чтобы правильно отформатировать ваш код, используя вкладки, а не пробелы для отступа. Кроме того, предоставьте короткую, но полную программу, демонстрирующую проблему.
Теги:
for-loop

2 ответа

6
Лучший ответ

Для каждого я = 31,62,93 и т.д. J должен увеличиваться

Тогда ваша логика должна быть

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

Это% является модульным оператором

  • 1
    Кроме того, сработает на 0, а также. Я подозреваю, что OP действительно хочет i % 31 == 30 , так что на следующей итерации мы начнем с нового значения. Трудно сказать, хотя.
  • 1
    @JonSkeet Добавил gaurd для нуля. for every i=31,62,93 etc J has to increment дал мне эту мысль.
1

Если вы хотите увеличить J для каждого я = 31,62...... затем инициализировать j = 0 и проверить

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню