Всем привет. Я застрял и не понимаю, почему код дает мне "неправильный" ответ.
Моя задача: написать программу, которая берет числа и считает их, пока пользователь не наберет "exit", затем программа распечатает сводку всех цифр, которые только что ввел пользователь, и остановится.
В данный момент я изучаю java онлайн и не знаю, как на это ответить: когда вы вводите 1, 2 или 3 числа или более, он вычисляет и печатает неправильный результат, или даже код не может быть скомпилирован и появляется ошибка.
Например, вы вводите 2 числа, и возникает ошибка
Исключение в потоке «main» java.lang.NumberFormatException: для входной строки: «exit» в java.base / java.lang.NumberFormatException.forInputString (NumberFormatException.java:68) в java.base / java.lang.Integer.parseInt (Integer.java:652) в java.base / java.lang.Integer.parseInt (Integer.java:770) в JR.constructors.Solution.main (Solution.java:11)
ИЛИ 3 числа, например 2 + 3 + 4, и выводится 6 вместо 8.
Помоги мне, пожалуйста!
А вот мой код
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int sum = 0;
while(true){
int a = Integer.parseInt(reader.readLine());
String s = reader.readLine();
sum += a;
if(s.equals("exit")){
System.out.println(sum);
break;
}
}
}
parseInt()
. - person Progman   schedule 18.06.2020s.equals("exit")
проверки. - person Carcigenicate   schedule 18.06.2020sum
нулем. Теперь вы запускаете цикл. Прочитать строку - если строки нет, она ждет. Разберите строку, которую вы только что прочитали как целое число, и присвойте ейa
- если это не целое число, вы получите исключение NumberFormatException. Теперь прочтите еще одну строчку вs
. Обратите внимание, что вы еще не производили расчет. Добавьтеa
вsum
. Проверьте, является лиs
выходом ... что, если вторая введенная вами строка - это число? Это число сравнивается с выходом, оно никогда не используется в расчетах. и Т. Д. - person Stephen P   schedule 18.06.2020