Всем привет!
Вопрос не по самой задачке а в целом.
В очередной раз запиливая задачку, я столкнулся с такой проблемой:
я не могу работать с переменными если присваиваю им значение в цикле или условии. Если с условием всё ясно, мол мб не выполнится и значения не присвоятся, то циклы исполняются в любом случае, а ошибка всё равно появляется.
Пример:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int a; //создаем переменные
int b;
for(int i=0; i<2; i++) { //запускаем цикл для присвоения значений
if(i==0) {a = Integer.parseInt(reader.readLine());} //присваиваем значение
if(i==1) {b = Integer.parseInt(reader.readLine());}
}
reader.close();
int sum = a + b; //Variable might not have been initialized
System.out.println("Sum = " + sum);
Да, можно решить данную проблему присвоив переменным 0 при создании, но что если числа будут отрицательными?
Можно тогда указывать минимальное отрицательное значение переменной, но нет ли более простого способа сказать компилятору чтоб он смотрел в цикл?
Кстати, а почему вообще так происходит? Ведь переменные созданы в методе а не цикле, соответственно цикл меняет именно те переменные, на которые я ссылаюсь.
Заранее спасибо!