Введен алфавит языка и его лексемы; приведены основные типы данных, константы и переменные; определены все операции; рассмотрены правила построения арифметических выражений, отношений и логических выражений; описана структура программы; рассмотрены средства вывода из ЭВМ арифметических значений с помощью функции printf(); определен оператор присваивания.
Вернемся вновь к структуре простой программы, состоящей только из одной функции с именем main( ).
директивы_препроцессора
void main( )
{ определения_объектов;
исполняемые_операторы;
}
Как мы уже договорились, пока нам будет достаточно двух препроцессорных директив #include <...>и#define.В качестве определяемых объектов будем вводить переменные и константы базовых типов. А вот об исполняемых операторах в теле функции нужно говорить подробно.
Каждый исполняемый оператор определяет действия программы на очередном шаге ее выполнения. У оператора (в отличие от выражения) нет значения. По характеру действий различают два типа операторов: операторы преобразования данных и операторы управления работой программы.
Наиболее типичные операторы преобразования данных - операторы присваивания и произвольные выражения, завершенные символом "точка с запятой":
Так как вызов функции является выражением с операцией "круглые скобки" и операндами "имя функции", "список фактических параметров", к операторам преобразования данных можно отнести и оператор вызова или обращения к функции:
имя_функции (список_фактических_параметров) ;
Мы уже использовали обращение к библиотечной функции printf(), параметры которой определяли состав и представление на экране дисплея выводимой из программы информации. С точки зрения процесса преобразования информации функция printf() выполняет действия по перекодированию данных из их внутреннего представления в последовательность кодов, пригодных для вывода на экран дисплея.
Операторы управления работой программы называют управляющими конструкциями программы. К ним относятся:
• составные операторы;
• операторы выбора;
• операторы циклов;
• операторы перехода.
К составным операторам относят собственно составные операторы и блоки. В обоих случаях это последовательность операторов, заключенная в фигурные скобки. Отличие блока от составного оператора - наличие определений в теле блока. Например, приведенный ниже фрагмент программы - составной оператор:
Наиболее часто блок употребляется в качестве тела функции.
Операторы выбора - это условный оператор (if) и переключатель (switch).
Операторы циклов в языке Си трех видов - с предусловием (while), с постусловием (do) и параметрический (for).
Операторы перехода выполняют безусловную передачу управления: goto (безусловный переход), continue (завершение текущей итерации цикла), break (выход из цикла или переключателя), return (возврат из функции).
Условный операторимеет сокращенную форму:
if(выражение_условие) оператор;
где в качестве выражения_условия могут использоваться: арифметическое выражение, отношение и логическое выражение. Оператор, включенный в условный, выполняется только в случае истинности (т.е. при ненулевом значении) выражения условия. Пример:
Кроме сокращенной формы, имеется еще и полная форма условного оператора: