Цикл while(0)
Автор: demi
Иногда удобно использовать цикл do { ... } while (0); Дело в том, что, как сами видите, он выполнится один раз. А прелесть в том, что можно использовать оператор break; Это может быть полезно, скажем, вместо вложенных if(...) и при проверке файла, имитируя работу try() ... catch(), избежать goto.
Пример:
char *buf1 = new char[1024]; do { // [1] если ошибка, то delete [] buf1 char *buf2 = new char[2048]; do { // [2]если ошибка, то delete [] buf1; delete [] buf2; ..... // Встретили ошибку: break; } while (0); delete [] buf2; } while ( 0); delete [] buf1;
15 мая 2005