Двойная сумма текущего баланса отображается в моем простом веб-проекте - PullRequest
0 голосов
/ 28 декабря 2018

код:

public static int getBalance()
{         
    List <Integer> sum = new ArrayList<Integer>();

    int balance=0;
    try
    {
        Class.forName("com.mysql.jdbc.Driver");
        Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/money","root","cpp");
        PreparedStatement ps = con.prepareStatement("select * from account");
        ResultSet rs = ps.executeQuery();
        while(rs.next())
        {
            sum.add(Integer.parseInt(rs.getString(1)));
            for(int i:sum)
            {
                balance += i;   
            }

        }
    }
}

при отображении суммы она добавляется дважды, например, если 2000 - это только текущая сумма, текущий баланс равен 4000

1 Ответ

0 голосов
/ 28 декабря 2018

Вы выполняете это один раз для каждого найденного вами результата, поэтому, если у вас есть два результата, суммы будут суммироваться дважды:

            for(int i:sum)
             {
                 balance+=i;

             }

Попробуйте переместить этот блок из оператора while.Вы можете узнать больше о while здесь: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...