Недоступный код во время цикла

Когда я компилирую этот код

public static void main(String [] args) {

        int x = 0;        

        while(false)
        {                        
            System.out.println(hello);
        }
    }

он показывает ошибку времени компиляции недоступного кода.

Но когда я изменил этот код

public static void main(String [] args) {

        int x = 0;        
        boolean result = false;
        while(result)
        {                        
            x=4;
        }
    }

работает нормально

Может кто-нибудь сказать мне причину этого поведения.