Acredito que o compilador não reclame disso porque é um costume muito comum em Java você desativar uma região de seu código usando “if (false)”, em vez de simplesmente tentar comentar tudo (como você deve saber, comentar tudo não é tão simples quanto parece - se você não tiver uma IDE, só o vi ou notepad, isso pode ser muito tedioso e sujeito a erros). Como em Java não existe preprocessador (algo como “#if 0” do C ou C++ para desativar uma região de seu código, ou #if (False) do C#) então esse costume vem desde o começo da linguagem.
[quote=entanglement]Acredito que o compilador não reclame disso porque é um costume muito comum em Java você desativar uma região de seu código usando “if (false)”, em vez de simplesmente tentar comentar tudo (como você deve saber, comentar tudo não é tão simples quanto parece - se você não tiver uma IDE, só o vi ou notepad, isso pode ser muito tedioso e sujeito a erros). Como em Java não existe preprocessador (algo como “#if 0” do C ou C++ para desativar uma região de seu código, ou #if (False) do C#) então esse costume vem desde o começo da linguagem.
[/quote]
Desculpe, mas qual o problema disso:
/*
if (blablabla){
....
}
*/
Ee fosse comentar tudo com // eu até concordaria, mas como existem comentários de multiplas linhas, não existe a menor necessidade disso.
bla bla bla /* ble ble ble */ bli bli blo // blu blu blu;
ble blox blix;
bla bla bla /* ble ble ble */ bli bli blo // blu blu blu;
ble blox blix;
bla bla bla /* ble ble ble */ bli bli blo // blu blu blu;
ble blox blix;
//bla bla bla /* ble ble ble */ bli bli blo // blu blu blu;
ble blox blix;
bla bla bla /* ble ble ble */ bli bli blo // blu blu blu;
ble blox blix;
onde você já tem alguns comentário de múltiplas linhas, para comentar esse bloco inteiro de código fica complicado (você teria de ficar, na verdade, pondo “//” no começo de cada linha para ser mais seguro. Algo como:
//bla bla bla /* ble ble ble */ bli bli blo // blu blu blu;
//ble blox blix;
//bla bla bla /* ble ble ble */ bli bli blo // blu blu blu;
//ble blox blix;
//bla bla bla /* ble ble ble */ bli bli blo // blu blu blu;
//ble blox blix;
////bla bla bla /* ble ble ble */ bli bli blo // blu blu blu;
//ble blox blix;
//bla bla bla /* ble ble ble */ bli bli blo // blu blu blu;
//ble blox blix;
Isso é trivial para uma IDE fazer, mas se você tiver de editar um programa Java e sua única ferramenta for um vi, via Telnet, ou um notepad, você terá problemas sérios para fazer as coisas direito (e para voltar as correções para trás). É por isso que o tal do “if (false)” é um “idioma” antigo da linguagem.
Ora, é exatamente pelo motivo que tradicionalmente (desde o tempo em que o Java se chamava Oak e era só um protótipo no computador do James Gosling) o método tradicional de desativar um bloco de código é “if (false)”, não “while (false)”. Isso é porque se você quer reativar o bloco de código, basta trocar “if (false)” por “if (true)”, mas obviamente usar “while (true)” não reativa o bloco de código, e sim cria um loop infinito, que não é o que você quer.