программа возвращает -500, чего я не понимаю
Хорошо, начальный баланс составляет 15000, затем 2 транзакции, которые должны вычитать 250 каждая
iteration balList balDisplay
0 15000 15000 set by if(i == 0) {list.get(i).getBalance()}
1 +/-250 14750 set by else {list.get(1).getBalance() - list.get(0).getBalance}
2 250 -500 set by else {list.get(2).getBalance() - list.get(1).getBalance}
итерация 0 указывает, что balance
из list[0]
изначально была 15000
итерация 1 указывает, что balance
из list[1]
изначально была +250 или -250, отображаемое значение составляет 14750 (15000-250). расчет равен list.get(1).getBalance() - list.get(0).getBalance
- при условии, что он равен +250, расчет дает -14750
- при условии, что он равен -250, расчет дает -15250
, посколькудисплей отображает 14750, он должен отображать вычисленную сумму, но инвертированную (сумма * -1), которая не включена в представленные фрагменты кода.
итерация 2 : следующая из 1 можно предположить, что balance
из list[2]
изначально равно +250, balDisplay должно быть 0 (250-250), но равно -500.
Теперь можно начинать все сначала, предполагаяэтот начальный баланс на самом деле равен -15000, отображается как +15000 на основании аргументов в 1 и т. д.
Это то, что я мог бы предоставить в разумные сроки, учитывая доступную информацию. Анализ показывает, что отображаемое сальдо строки 3 должно быть равно нулю, но оно равно -500. Нет ничего доступного, чтобы объяснить это. С другой стороны, баланс также не может составлять 14500, исходя из тех же соображений.
Наиболее подозрительным было list.get(i).getBalance() - list.get(i-1).getBalance()
. Почему один вычесть один баланс из другого баланса, а не сумму из некоторого баланса. А также, зачем вычитать более раннее (i-1) сальдо из более позднего (i)?