У меня очень серьезный вопрос, возможно, я что-то пропустил по теории, не понимаю. Я решил выводить ответ через переменную xy, объявив ее в самом начале и просто присваивая ей потом нужное значение из условий. НО компилятор не выполняет код, если переменная просто объявлена, пишет, что она не инициализирована, но ведь я присваиваю ей значение после, зачем мне это делать сейчас? Однако, если я сразу присваиваю ей какое-либо значение, то все работает, она принимает значение из условий. Кто мне может объяснить, что я сделал не так при объявлении переменной?
public class Solution {
    public static void main(String[] args) {

    Scanner scan = new Scanner(System.in);
    int x = scan.nextInt(), y = scan.nextInt();
    boolean X = (x>0);
    boolean Y = (y>0);
    int xy = 1;  // int xy; ??почему нельзя просто объявить переменную? ведь значение мы можем подставить после
    if (X && Y)
       xy = 1;
       else if (!X && Y)
       xy = 2;
       else if (!X && !Y)
       xy = 3;
       else if (X && !Y)
       xy = 4;


       System.out.println(xy);

    scan.close();
    }
}