Консоль-копилка Вводить с клавиатуры числа и считать их сумму, пока пользователь не введет слово «сумма». Вывести на экран полученную сумму. Требования: 1. Программа должна считывать данные с клавиатуры. 2. Программа должна корректно работать, если пользователь ввел одно число и слово «сумма». 3. Программа должна корректно работать, если пользователь ввел два числа число и слово «сумма». 4. Программа должна корректно работать, если пользователь ввел более двух чисел и слово «сумма». 5. Программа должна выводить текст на экран. 6. Программа должна прекращать считывать данные с клавиатуры после того пользователь введет слово "сумма" и нажмет Enter. Таким образом не проходит, выдаёт ошибки после ввода "сумма":
package com.javarush.task.task05.task0529;
import java.io.BufferedReader;
import java.io.InputStreamReader;
/*
Консоль-копилка
*/
public class Solution {
    public static void main(String[] args) throws Exception {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        int sum=0;
        boolean isExit=false;
        while(!isExit){
            String w = reader.readLine();
            int a = Integer.parseInt(w);
            sum+=a;
            isExit = w.equals("сумма");
        }
        System.out.println(sum);
    }
}
А так проходит, в чем разница, ведь по сути аналогичный код:
package com.javarush.task.task05.task0529;
import java.io.BufferedReader;
import java.io.InputStreamReader;
/*
Консоль-копилка
*/
public class Solution {
    public static void main(String[] args) throws Exception {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        int sum = 0;
        while (true){
            String s = reader.readLine();
                if (s.equals("сумма")) {
                    break;
                }
            int n = Integer.parseInt(s);
                sum += n;
        }
        System.out.println(sum);
    }
}