Nie wiem, czy był to „oficjalny” przypadek użycia, ale poniższe powoduje wygenerowanie ostrzeżenia w Javie (które może dodatkowo powodować błędy kompilacji, jeśli zostaną zmieszane z returninstrukcjami, prowadząc do nieosiągalnego kodu):
while (1 == 2) { // Note that "if" is treated differently
System.out.println("Unreachable code");
}
Jest to jednak legalne:
while (isUserAGoat()) {
System.out.println("Unreachable but determined at runtime, not at compile time");
}
Często więc piszę głupią metodę użyteczności dla najszybszego sposobu pozorowania bloku kodu, a następnie podczas debugowania znajduję wszystkie wywołania do niego, więc jeśli implementacja się nie zmieni, można tego użyć.
JLS podkreśla, if (false)że nie wyzwala „nieosiągalnego kodu” z tego konkretnego powodu, że spowodowałoby to przerwanie obsługi flag debugowania, tj. Zasadniczo ten przypadek użycia (h / t @auselen). ( static final boolean DEBUG = false;na przykład).
Zamieniłem whilena if, tworząc bardziej niejasny przypadek użycia. Sądzę , że dzięki temu zachowaniu możesz udoskonalić swoje IDE, takie jak Eclipse, ale ta edycja jest za 4 lata i nie mam środowiska Eclipse do zabawy.