在循环中找到最高,最低和平均值

Piz*_*man 0 java while-loop

我知道这可能是我做错了.我希望它在循环结束时打印最小数字等,但它总是打印为最低的零.如何让它不将退出机制归零为最低数字.

有什么建议吗?

class HighLowAve
{
    public static void main (String[]args)
    {
        int num =0;
        int sum;
        int highest;
        int lowest;
        int index;
        Double average;

        highest = num;
        lowest = num;
        sum = 0;
        index = 0;

        do
        {
            System.out.println("Enter a number. Press zero to quit ");
            num = EasyIn.getInt();

            if (num > highest)
            {
                highest = num;
            }
            else if (num < lowest) 
            {
                lowest = num;
            }

            sum = sum + num;
            index++;
        }while (num !=0);

        average = (double) sum/(index-1);

        System.out.println("The highest number was " + highest);
        System.out.println("The lowest number was " + lowest);
        System.out.println("The average number was " + average);            
    }
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 7

highestlowest变量都从0开始.所以如果你的数字都是负数,你将得到highest0,不正确.如果你的数字都是正数,你将得到lowest0,不正确.

只是开始highest = Integer.MIN_VALUE,并lowest = Integer.MAX_VALUE再一次迭代将结束与正确的highestlowest值.