Войти
Подсказки

Цикл while(0)

Автор:

Иногда удобно использовать цикл 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