prefer do-while