Кент Рейсдорф. BORLAND C++BUILDER. Раздел 1
Кент Рейсдорф. BORLAND C++BUILDER. Страница 39
Давайте рассмотрим другой вариант того же цикла, который достигает в точности обратного эффекта по сравнению с первым:
for (int i = 10; i > 0; i—) {
cout << "This is iteration " << i << endl;
}
Теперь я начинаю с 10, останавливаюсь, когда i равно 0 и уменьшаю i на единицу в каждом проходе. Это пример цикла с обратным счетом.
Давайте напишем небольшую программу, иллюстрирующую использование цикла for. Введите, откомпилируйте и запустите программу из листинга 2.1. Она называется FORLOOP.CPP и содержится также на CD-ROM, прилагаемом к книге. Результат работы программы показан на рис. 2.1.
В предыдущих примерах открывающая и закрывающая фигурные скобки не обязательны. При отсутствии скобок телом цикла считается оператор, следующий непосредственно за оператором for. Для ясности и лучшей читаемости программ неплохо расставлять скобки даже тогда, когда в этом нет особой необходимости.
Теперь вы знаете, что начальное значение переменной цикла может быть любым (предполагается, конечно, что оно лежит в диапазоне значений выбранного типа данных). В качестве условного выражения допустимо любое выражение Си++, результатом которого может быть true. Величина, с которой сравнивается переменная цикла, может быть константой, как в вышеприведенных примерах, переменной или возвращаемым значением функции. Ниже приведены примеры правильной записи условных выражений:
for (int i = 0; i < 100; i++) {...}
for (int i = 1; i == numberOfElements; i++) (...)
for (int i = 0; i <= GetNumberOfElements(); i += 2) {...}
Обратите внимание на последний пример. Здесь я увеличиваю счетчик на 2 при каждом проходе цикла. Вы можете использовать инкрементное
выражение с любым параметром инкремента. Например, в этом цикле происходит увеличение на 10: