Всем привет! Вопрос не по самой задачке а в целом. В очередной раз запиливая задачку, я столкнулся с такой проблемой: я не могу работать с переменными если присваиваю им значение в цикле или условии. Если с условием всё ясно, мол мб не выполнится и значения не присвоятся, то циклы исполняются в любом случае, а ошибка всё равно появляется. Пример:
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 при создании, но что если числа будут отрицательными? Можно тогда указывать минимальное отрицательное значение переменной, но нет ли более простого способа сказать компилятору чтоб он смотрел в цикл? Кстати, а почему вообще так происходит? Ведь переменные созданы в методе а не цикле, соответственно цикл меняет именно те переменные, на которые я ссылаюсь. Заранее спасибо!