существует цикл с предусловием: while(...) { ... }
существует цикл с постусловием: do { ... } while(...)
почему не существует цикла с опосредованным условием? что-то типа:
loop { ... loopcond(...) ... }
сейчас для реализации подобной штуки делается что-то типа:
while(1) { ... if(! (...) ) break; ... }
к тому же, при переходе к циклу с опосредованным условием две другие формы (с пред- и постусловиями) становятся просто не нужными