C'est sale car tu sors de la boucle avant la condition de fin.
En gros, tu devrais faire un while et intégrer ton test dans la condition.
Tu pourrais mais je ne vois pas l'intérêt. C'est une vraie boucle for standard (avec une variable de contrôle initialisée, testée et modifiée uniquement dans le "
for( ; ; )") avec parfois une sortie anticipée.
Bien sûr ce n'est plus "SESE" et donc
il ne faut pas mettre du code de nettoyage en fin de bloc, mais si on peut respecter cette condition, quel est le souci?