http://au.php.net/manual/ja/control-structures.do.while.php
こんな方法があるのか……。目からウロコ。
まぁ要するに俺がヘタレプログラマってだけですがorz

追記

do-while使う意味ってあるんだろうか?普通にコードブロックにしては?
しかしPHPでは、
http://au.php.net/manual/ja/control-structures.break.php
にあるように、breakはループやらswitchやらを抜けるためだけのモノらしい。ではCではどうなのだろうか。超うろ覚えなので実験。

#include 
main(){
	printf("hoge\n");
	{
		printf("foo\n");
		break;
		printf("bar\n");
	}
	printf("end\n");
}

普通にコンパイルエラーでますた(´・ω・`)バイナリ出力されず。手近に使えたのは"gcc version 2.95.3 20010315 (release)"だった。妙に古いけど、まぁ最近のでも変わらんだろう。
ブロック部分をwhileに変えたら普通にできた。やっぱりループとかswitchじゃないと使えないんだろう。
未だにCには謎が多い。まぁループでもswitchでも条件分岐でもないブロック化なんて使ったことないけど……。何のためにある機能なんだろう。それを必要とするようなアルゴリズムがあるのだろうか? きっとあるんだろうけどさ。