Это самая чистая альтернатива do-while, которую я видел. Это идиома, рекомендуемая для Python, который не имеет цикла do-while.
Одно предостережение в том, что вы не можете иметь continue
в <setup code>
, так как это могло бы перескочить условие разрыва, но ни один из примеров, которые показывают преимущества выполнения, не требует продолжения перед условием. 1005 *
while (true) {
<setup code>
if (!condition) break;
<loop body>
}
Здесь он применяется к некоторым из лучших примеров циклов do-while, приведенных выше.
while (true); {
printf("enter a number");
scanf("%c", &c);
if (!(c < '0' || c > '9')) break;
}
Этот следующий пример - случай, когда структура более читаема, чем задание, поскольку условие сохраняется вблизи вершины, поскольку //get data
обычно короткое, а часть //process data
может быть длинной.
while (true); {
// get data
if (data == null) break;
// process data
// process it some more
// have a lot of cases etc.
// wow, we're almost done.
// oops, just one more thing.
}