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 z = new BufferedReader(new InputStreamReader(System.in));
int Summa = 0;
String s = z.readLine();
while(true) {
if(s.equals("сумма")) {
break;
} else { int a = Integer.parseInt(s);
Summa = Summa + a;
}
}
System.out.println(Summa);
}
}Андрей
12 уровень
Подскажите, почему String s = z.readLine(); вне цикла while будет долго выполнять программу?
Решен
Комментарии (8)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Андрей
2 июня 2018, 08:43
я понимаю что exception будет при вводе вместо допустим числа, буквы "d"
но если String s внутри цикла, то exceptiona нет, с чем это связано?
0
--------Master
2 июня 2018, 08:52полезный
String s = z.readLine() - это чтение строки из ридера z в переменную s, а в приведенном цикле у тебя это полученное перед циклом значение s просто бесконечно преобразуется в число и прибавляется к сумме.
Если вводить любое строковое значение, кроме "сумма", то и при считывании с клавиатуры внутри цикла будет выбрасываться исключение при попытке преобразования строки в число.
+2
Андрей
2 июня 2018, 09:16
да, но если String s = z.readLine();
поместить внутрь цикла, то нет исключения, всё равно не понимаю почему, вроде бы тоже исключение должно быть
0
--------Master
2 июня 2018, 09:25решение
Точно так же есть исключение и внутри цикла, показал на скрине:
![]()

+2
Андрей
4 июня 2018, 15:44
странно, но вот такое решение прошло валидацию как раз, разработчикам JavaRush надо тогда проверить данный код
0
Roman Java Developer Expert
4 июня 2018, 15:55
А что странного в данном решении ?
0
Андрей
5 июня 2018, 11:29
наличие эксепшена
0
Roman Java Developer Expert
5 июня 2018, 14:14
В данной задаче это допускается.
0