Проблема выхода из цикла
Программа с помощью бесконечного цикла должна суммировать числа, которые вводит пользователь. Она должна работать до тех пор, пока не будет введён 0. Я дошел до следующего, больше не знаю что не так:
class Praktikum {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int sum = 0; // Сумма
int input; // Ввод пользователя
while (input != 0) {
input = scanner.nextInt(); //сканирует ввод
sum = sum + input; // добавляет введенное
}
System.out.println("Сумма введённых чисел: " + sum);
}
}
Ответы (1 шт):
Автор решения: Nowhere Man
→ Ссылка
Можно присваивать значение непосредственно в условии цикла while, это гарантирует, что переменной input всегда будет присвоено какое-либо значение.
Также можно добавить проверку на то, содержит ли сканируемый поток ввода целое число при помощи вызова scanner.hasNextInt() для защиты от ошибок ввода (тогда цикл завершится не только при вводе нуля, но и как только пользователь введёт нечисловое значение)
public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
int sum = 0; // Сумма
int input; // Ввод пользователя
while (scanner.hasNextInt() && (input = scanner.nextInt()) != 0) {
sum += input; // добавляет введенное
}
System.out.println("Сумма введённых чисел: " + sum);
}