Ваш код ниже имеет дополнительную точку с запятой после объявления цикла for.Удаление этой точки с запятой должно помочь.
int sum = 0;
for(int i = 0; i < pushuplist.size(); i++); // remove this semicolon
{
sum += pushuplist.get(i);
}
Если вы хотите знать, почему это не вызывает ошибку или предупреждение компилятора, читайте дальше.
Когда вы пишете цикл forЕсли фигурные скобки не добавлены, будет выполнен следующий исполняемый оператор для итераций цикла.
for(int i = 0; i < 10; i++) System.out.println(i);
for(int i = 0; i < 10; i++)
System.out.println(i);
Это оба экземпляра допустимого кода.В обоих случаях печать будет запущена 10 раз и выведет значение i
.
В случае, когда после объявления цикла for стоит точка с запятой, например, у вас:
for(int i = 0; i < pushuplist.size(); i++);
Следующим исполняемым оператором является точка с запятой ;
, поэтому через все итерации цикла ничего не выполняется.
Надеемся, что это объяснение должно пролить немного света на то, что там происходит.
Удачи в вашем приложении!