do~whileなんて珍しいものをと思いきや、
0なのでループしないという謎ソースがあった。
よくよく聞いてみるとエラー処理などで
一気に抜けたい場合などに使えるテクニックらしい。
こんな感じにしてやると
do_while_0.c
#include <stdio.h>
int main()
{
int i = 0;
do {
if (i == 0) {
printf("hello world! i=%d\n", i);
break;
}
if (i == 1) {
printf("hello world! i=%d\n", i);
break;
}
printf("I don't want to run here!\n");
} while (0);
return 0;
}
gotoなどを使わなくても囲われたブロックからbreakで脱出できるという訳。