[SP-pm] Comportamento do do-while

Lucas Buchala lucasbuchala at gmail.com
Mon Jul 4 07:32:48 PDT 2011


Eu sempre achei que onde eu tivesse uma única instrução, eu poderia
substituir a instrução por um bloco "do { ... }" e a lógica ficaria
sempre a mesma.

Mas agora vi esse exemplo do comportamento bizarro do do-while:

-----------------------------------------------------
$ perl -E 'say "hello" while 0'
(Não imprime nada)

$ perl -E 'do { say "hello" } while 0'
hello
-----------------------------------------------------

Com uma única instrução, o while (falso) NÃO executa nenhuma vez, o
que já era esperado.
Mas com um bloco "do", o while (falso) executa uma vez.
Qual o "rationale" aqui? Apenas para igualar o comportamento do
do-while da linguagem C, de executar pelo menos uma vez? Na minha
opinião, esse design ficou meio inconsistente... :-(


More information about the SaoPaulo-pm mailing list