Я бы, наверное, сделал это так, чтобы было проще. Кроме того, в общем, старайтесь не сводить код вместе. Наиболее формальный проект требует определенной степени стилизации и обычно между пробелами и пробелами, и т. Д. c ... требуется. В долгосрочной перспективе это делает код более читабельным и простым в обслуживании.
В вашем коде не было необходимости повторять одно и то же, если тестировать число> 0 несколько раз, они могли бы быть все связаны вместе. Если бы программа была больше и сложнее, я мог бы назвать имена переменных с большей квалификацией, но для такой короткой программы, как эта, кратких имен было достаточно для ясности.
continue
и break
являются важными ключевыми словами для управления поведением l oop и могут использоваться для повышения краткости и ясности. continue
немедленно возвращается к вершине l oop и break
немедленно покидает самый внутренний l oop. Разделив double
на int
, мы получим double
, поэтому я смог исключить бросок. А оператор +=
делает чтение строки немного легче.
Также в Java и C любое предложение if()
или else
, содержащее одну строку, не требует скобок и если программа не вложена таким образом, что добавление фигурных скобок в любом случае добавляет ясности, в этом случае зачастую яснее опустить фигурные скобки. Оператор if
иллюстрирует оба способа в одном операторе.
import java.util.Scanner;
public class avg
{
static int count = 0;
static double sum = 0;
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("\nEnter a sequence of positive numbers (0 to calculate average):\n");
while (true) {
System.out.print("Number? ");
int n = scanner.nextInt();
if (n < 0) {
System.out.println("Negative numbers not allowed.");
continue;
} else if (n == 0)
break;
sum += (double)n;
++count;
}
System.out.println("Average of " + count + " numbers = " +
(double)(sum / count) + "\n");
System.exit(1);
}
}
Пример вывода:
$ java avg
Enter a sequence of positive numbers (0 to calculate average)
Number? 1
Number? 2
Number? 3
Number? 4
Number? 5
Number? -6
Negative numbers not allowed.
Number? 0
Average of 5 numbers = 3.0