Помогите разобраться с циклом for. Среднее Арифметическое

Добры день! Прошу не кидаться камнями сразу. Задача на нахождение среднего арифметического числа. Условия:"Вводить с клавиатуры числа и вычислить среднее арифметическое. Если пользователь ввел -1, вывести на экран среднее арифметическое всех чисел и завершить программу. -1 не должно учитываться."

Я реализовал её так:

public static void main(String[] args) throws Exception {
        float i = 0;
        float a = 0;
        float b = 0;
        for(;a!=-1;i++) {
            BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
            String a1 = reader.readLine();
            a =Integer.parseInt(a1);
            b=b+a;
        }
        if(a==-1) {
            float c = (b+1)/(i-1);
            System.out.println(c);
        }   

    } 

в принципе, все работает, но! Этож натуральные костыли. Прошу указать на ошибки и дать советы по оптимизации данного кода. Спасибо!


Ответы (1 шт):

Автор решения: Алексей г
public class Main {
    public static void main(String[] args) {
        double a, b = 0.0;
        int i = 0;
        Scanner scanner = new Scanner(System.in);
        while (true) {
            a = Double.parseDouble(scanner.nextLine());
            if (a == -1) {
                break;
            }
            b += a;
            i++;
        }
        System.out.println(b / i);
    }
}
→ Ссылка