На этом шаге мы рассмотрим использование этой управляющей конструкции.
Кроме управляющей конструкции while, цикл позволяет организовать и управляющая конструкция for. Перепишем уже рассмотренную программу расчета температур в несколько
ином виде:
#include <conio.h> //для функции _getch() #include <stdio.h> //для функции printf() using namespace System; void main() { int fahr; for(fahr = 0; fahr <= 300; fahr = fahr + 20) printf("%4d %6.1f\n",fahr,(5.0/9.0)*(fahr-32.0)); _getch(); }
Архив проекта можно взять здесь.
Рис.1. Текст приложения
Здесь для получения того же результата, что и в предыдущем случае, применена управляющая конструкция for. Тело цикла, как и при использовании цикла while,
также циклически выполняется (прокручивается). В нашем случае тело for состоит всего из одного оператора - printf ();, поэтому такое тело можно не заключать в фигурные скобки, хотя
их наличие не является ошибкой.
Мы видим, что запись программы приобрела более компактный вид. В заголовочной части конструкции for расположены три выражения, из которых первые два оканчиваются точкой с
запятой, третье - круглой скобкой, обозначающей границу заголовочной части for (компилятор понимает, что третье выражение завершилось). Как говорят, в данном случае
"цикл идет по переменной fahr": в первом выражении она получает начальное значение, второе выражение - это условие окончания цикла (цикл закончится тогда, когда
fahr примет значение, большее 300), а третье выражение изменяет параметр цикла на величину шага цикла.
Работа происходит так: инициализируется переменная цикла (т. е. получает начальное значение), затем проверяется условие продолжения цикла. Если оно истинно, то сначала выполняется тело
цикла (в данном случае функция printf ()), затем управление передается в заголовочную часть конструкции for. После этого вычисляется третье выражение (изменяется параметр цикла) и
проверяется значение второго выражения. Если оно истинно, то выполняется тело цикла, затем управление снова передастся на вычисление третьего выражения и т. д. Если же второе выражение
становится ложным, то выполнение конструкции for завершается и начинает выполняться оператор, следующий непосредственно за ним (а это - завершающая фигурная скобка main(),
означающая прекращение работы функции main ()).
В данном примере следует обратить внимание на аргумент функции printf (). Вместо обычной переменной там стоит целое выражение, которое сначала будет вычислено, а потом его значение
выведется на устройство вывода. Выражение можно указывать в качестве аргумента функции, исходя из правила языка C/C++:
"В любом контексте, в котором допускается использование переменной некоторого типа, можно использовать и выражение этого же типа".
На следующем шаге мы рассмотрим символические константы.