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