Devo essere d'accordo con sbi qui - Mi piace il termine ciclo di controllo medio . Questo tipo di costrutto era più popolare quando la programmazione strutturata iniziava a girare e molte lingue avevano il supporto sintattico per loro.
Detto questo, è ormai diffusa la consapevolezza che i cicli di while
di solito sono più maneggevoli, dal momento che è più facile ragionare sugli invarianti e spesso gestiscono meglio il caso complicato e vuoto.
Nel tuo caso particolare il tuo loop è solo equivalente a
for(; doSomething(), !condition(); doSomethingElse()){}
quindi utilizzerei solo la versione break
se doSomething
o doSomethingElse
riguardava più istruzioni e preferirei non inserirle in funzioni separate come hai fatto tu.
Detto questo, se il tuo ciclo è più complicato di un iterazione (avvio, controllo, incremento) dovresti prendere in considerazione la possibilità di rifarlo in qualcosa di più semplice.