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.
M
mario.fts
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.
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.
E
entanglement
Puxa, é que se você tiver isto aqui:
blablabla/* ble ble ble */blibliblo// blu blu blu;blebloxblix;blablabla/* ble ble ble */blibliblo// blu blu blu;blebloxblix;blablabla/* ble ble ble */blibliblo// blu blu blu;blebloxblix;//bla bla bla /* ble ble ble */ bli bli blo // blu blu blu;blebloxblix;blablabla/* ble ble ble */blibliblo// blu blu blu;blebloxblix;
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.
M
mario.fts
Sim, neste caso realmente não tem solução. Mas vc concorda que:
while(false){sysout.../* To no LooP!!!!*/sysout...}
Tbm da o mesmo problema? O engraçado é o compilador reclamar de um e não do outro. O certo (IMHO) seria alertar com um warning nos dois casos.
Vai entender… :roll:
[]'s
E
entanglement
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.