Есть задача:
В первой строке ввести n - количество целых чисел. Во второй строке ввести числа через пробел, чисел может быть введено >n. Вывести сумму n первых введенных чисел.
Решение довольно простое:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int amountOfNum = scanner.nextInt();
scanner.skip("\n");
String numString = scanner.nextLine();
String[] arrayNum = numString.split(" ");
int summ = 0;
for (int i = 0; i < amountOfNum; i++) {
summ += Integer.parseInt(arrayNum[i]);
}
System.out.println(summ);
}
Но по самому решению есть вопросы:
scanner.skip("\n");? Т.к. это
очевидный костыль, но без этой строки scanner.nextLine() считывает
предыдущий перенос строки и не дает ввести числаsplit? Только парсить вручную?По поводу пунктов 1 и 2: достаточно использовать nextInt вместо nextLine:
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
int amountOfNum = scanner.nextInt();
int summ = 0;
for (int i = 0; i < amountOfNum; i++)
{
summ += scanner.nextInt();
}
System.out.println(summ);
}
По поводу пункта 3: если задача придумана для того, чтобы обучить считыванию чисел с консоли, то нужно это... для обучения считыванию чисел с консоли. На практике такое может потребоваться только в какой-то расчудесной ситуации, при которой нужно посчитать сумму больших чисел, но при этом вы не можете воспользоваться калькулятором, зато у вас есть эта программа и возможность её запустить.
Продвижение своими сайтами как стратегия роста и независимости