Хотите — верьте, хотите — нет, но большинство программистов на С++ используют именно этот вариант записи. И не потому, что им нравится быть остроумными; хотя почему бы и нет? Использование в логических сравнениях операторов инкремента и декремента делает программный код легко читаемым и более компактным. И вряд ли вы, исходя из своего опыта, сможете предложить достойную альтернативу.

«И в выраженииloopCount-- , и в--loopCount значениеloopCount уменьшается; однако первое возвращает значение переменнойloopCount перед его уменьшением на 1, а второе — после.»
[ Помни! ]
Сколько раз будет выполняться декрементированный вариант WhileDemo , если пользователь введёт число 1? Если использовать префиксный вариант, то значение --loopCount равно 0 и тело цикла никогда не выполнится. В постфиксном варианте loopCount-- возвратит 1 и программа передаст управление в начало цикла.
У вас может сложиться ошибочное мнение, что программа, в которой используются операторы декремента, выполняется быстрее, так как содержит меньше инструкций. Однако это не совсем так. Время выполнения программы не зависит от того, с какой из представленных выше операций декремента вы работаете, так как современные оптимизирующие компиляторы используют минимально необходимое количество инструкций машинного языка, независимо от применяемых для декремента операторов.
_________________
70 стр. Часть 1. Первое знакомство с С++
Использование цикла for...71
Другой разновидностью циклов является цикл for . Его часто предпочитают более простому циклу while . Цикл for имеет следующий вид:
for ( инициализация ; условие ; увеличение )
{
// ...тело цикла
}
Выполнение цикла for начинается с инициализации. В ней обычно находится оператор присвоения, используемый для установки начального значения переменной цикла. Условие инициализации выполняется только один раз, при первом входе в цикл for .
Затем проверяется условие. Подобно циклу while , цикл for выполняется до тех пор, пока условие не станет ложным.
После того как выполнится код тела цикла, управление получит следующий параметр цикла for ( увеличение [ 11 ] ) и значение счётчика изменится. Затем опять будет выполнена проверка условия, и процесс повторится. В этом параметре обычно записывают инкрементное или декрементное выражение, которое определяет характер изменения переменной цикла на каждой итерации, но в принципе ограничений на используемые здесь операторы нет. Цикл for можно заменить эквивалентным ему циклом while :
инициализация ;
while ( условие )
{
{
// ...тело цикла
}
увеличение ;
}
Все три параметра цикла for являются необязательными. С++ игнорирует отсутствие части инициализации или увеличения цикла, а если опущено условие, С++ будет выполнять цикл for вечно ( или пока какой-либо другой оператор не передаст управление за пределы цикла ).
Для лучшего понимания цикла for рассмотрим пример. Приведённая ниже программа ForDemo выполняет то же, что и WhileDemo , но вместо while использует цикл for .
/* ForDemo1. Вводится счётчик цикла. На экран выводится количество выполненных циклов for */
#include
#include
#include
using namespace std ;
int main( int nNumberofArgs , char* pszArgs[ ] )
{
setlocale ( LC_ALL , ".1251" ) ; /* печать русских текстов */
/* Ввод счётчика цикла */
int loopCount ;
cout << "Введите loopCount: " ;
cin >> loopCount ;
/* Работаем loopCount раз */
for ( ; loopCount > 0 ; )
{
loopCount = loopCount - 1
cout << "Осталось выполнить "
<< loopCount << " циклов\n" ;
}
/* Пауза для того, чтобы посмотреть на результат работы программы */
system( "PAUSE" ) ; return 0 ;
}

_______________
11Увеличение в данном случае — достаточно условное название. Чаще всего здесь действительно выполняется увеличение счётчика цикла, однако это может быть любая инструкция С++, в том числе и пустая. — Прим. ред.
Читать дальше