do / while - это хорошо известная уловка для превращения блока утверждений в нечто, что синтаксически действует как отдельный оператор. Это позволяет использовать в таких местах, как:
if (whatever)
rsAssert(whatever);
else
// ...
, тогда как в большинстве случаев в этом случае возникает синтаксическая ошибка.
Что касается того, зачем вообще его использовать: потому что он записывает вывод с LOGE
вместо печати в stderr
, и (если LOGE не делает этого), кажется, что это не прерывает программу, как assert
. 1009 *