我的总和不会正确显示

时间:2017-01-30 16:54:32

标签: java

第一次学习Java,我无法弄清楚为什么我的总和不能从用户的输入中正确显示..任何帮助都将不胜感激!

    System.out.println("Enter an income (Any negative number to quit):"); 
    ArrayList<Double> numbers = new ArrayList<>();
    Scanner one = new Scanner(System.in);
    double sum = 0.0;
    double avg = 0.0;

    while (true)
    { 
    double number = one.nextInt();
    System.out.println("Enter an income (Any negative number to quit):");
    if (number >= 0)        
    { 
    numbers.add(number);   

    }

    else{ 
        double min = Collections.min(numbers);
        double max = Collections.max(numbers);

        for (int i = 0; i < numbers.size(); i++)
        {
        i = numbers.size();
        sum = sum + i;  
        }
         avg = sum / numbers.size();        
        double value = 0.0;                     
        System.out.println("The minimum number is " + min);
        System.out.println("The maximum number is " + max);
        System.out.println("Sum " + sum); //
        System.out.println("The Average number is " + avg); 
    }



    }

2 个答案:

答案 0 :(得分:0)

您将索引i覆盖到数组大小,以便在循环中输入一次并在sum中设置数组大小,而不是执行以下操作:

for (int i = 0; i < numbers.size(); i++)
{
    sum = sum + numbers.get(i);  
}

您也可以使用foreach:

for (Double number : numbers)
{
    sum = sum + number;
}

答案 1 :(得分:0)

这些问题是:

''.join

你永远不应该改变循环中的循环变量。当你这样做时会发生循环早期结束,并不是return ''.join([sublist[column_index] for sublist in board]) 的每个值都被添加到总和中。

您也不想在总和中添加i = numbers.size(); sum = sum + i; ...您想要在i位置添加元素。

你应该做的事情如下:

i