@ polygenelubricants уже опубликовали очевидное лучшее решение для этого.
Однако в некоторых случаях может быть проще полностью удалить условие из цикла и выполнить что-то вроде этого:
for (;;) {
knockOnDoor();
if (!doorIsLocked()) { break; }
}
, поскольку он дает вам полный контроль над тем, что делать до и после условия цикла.
Но когда do-while
делает то, что вам нужно, определенно предпочитаете это.