Шаг 14.
Microsoft Visual C++ 2010. Язык С/С++.
Консольное приложение. Конструкция for

    На этом шаге мы рассмотрим использование этой управляющей конструкции.

    Кроме управляющей конструкции 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++: "В любом контексте, в котором допускается использование переменной некоторого типа, можно использовать и выражение этого же типа".

    На следующем шаге мы рассмотрим символические константы.




Предыдущий шаг Содержание Следующий шаг