goto label2

label1:
処理

label2:
条件判断
if (偽) goto label 1;

----
コンパイル結果的にはforやwhileはこんな感じ
条件が無かったとしても goto label2が入る
最適化しない場合やチープなコンパイラだと
このまま最適化されないかもしれない

goto label2
が不要な時にこれを除いたのがdo while
これのほうがバイナリはシンプル