Операторы

Все операторы, за исключением оговоренных случаев, выполняются один за другим.

		
оператор:
  оператор-выражение
  составной-оператор
  выбирающий-оператор
  оператор-цикла
  оператор-перехода
  оператор-описания

	

Оператор-выражение

Чаще всего операторами бывают выражения; в этом случае оператор имеет такой вид:

		оператор-выражение:
		выражение opt ;
	

Обычно операторы-выражения являются присваиваниями или вызовами функций. Все побочные эффекты выполнения оператора-выражения происходят до выполнения следующего оператора. Оператор-выражение с отсутствующим выражением называется пустым оператором. Он может пригодиться, например, для задания пустого тела оператора цикла.

Составной оператор или блок

Для тех случаев, когда вместо одного оператора нужно использовать несколько, предусмотрен составной оператор (иногда его называют «блок»).

		составной-оператор:
		{ список-операторов opt }
		список-операторов:
		оператор
		список-операторов оператор
	

Отметим, что описание считается оператором.

Выбирающий оператор

Выбирающие операторы выбирают одну из нескольких структур управления.

		
выбирающий-оператор:
  if ( выражение ) оператор
  if ( выражение ) оператор else оператор
  switch ( выражение ) оператор

	

Оператор в выбирающем-операторе не может быть описанием.

Операторы цикла

Эти операторы задают виды цикла.

		оператор-цикла:
		while ( выражение ) оператор
		do оператор  while (выражение) ;
		for ( оператор-иниц выражение-1 opt ; выражение-2 opt ) оператор
		оператор-иниц:
		оператор-выражение
		оператор-описание
	

Обратите внимание, что конструкция оператор-иниц кончается точкой с запятой.

Оператор в операторе-цикла не должен быть описанием.

Операторы перехода

Операторы перехода делают безусловную передачу управления.

		оператор-перехода:
		break ;
		continue ;
		return выражение opt ;
	

Оператор описания

Оператор описания заводит в блоке новый идентификатор и имеет вид:

		оператор-описания:
		описание
	

Если идентификатор, введенный с помощью описания, уже был ранее описан во внешнем блоке, внешнее описание становится скрытым до конца блока, после чего оно опять вступает в силу.

Все инициализации локальных переменных производятся каждый раз, когда выполняется оператор-описание. Уничтожение локальных переменных, описанных в блоке, происходит при выходе из блока. Уничтожение локальных переменных, определенных в цикле, происходит на каждом шаге цикла. Например, переменная j создается и уничтожается каждый раз в течение цикла по i:

		
for (int i = 0; i<100; i++)
  for (int j = 0; j<100; j++)
  {
    // ...
  }