Консоль-копилка
Вводить с клавиатуры числа и считать их сумму, пока пользователь не введет слово «сумма».
Вывести на экран полученную сумму. Требования: 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);
}
}