Помогите разобраться с циклом 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);
}
}