- •Форма оператора ввода (ввод данных с внешнего устройства в оп):
- •Форма оператора вывода (вывод данных из оп на внешнее устройство):
- •Операторы управления работой программы
- •Условный оператор
- •If (выражение) оператор 1 else оператор 2;
- •If (выражение) оператор
- •Вложенные условные операторы
- •Оператор switch
- •Форма переключателя:
- •Форма альтернативного выбора:
- •Операторы цикла.
- •Вложенные циклы
- •Операторы передачи управления
- •Оператор выхода из цикла или переключателя break.
- •Материал для самостоятельного изучения. Функции printf () и scanf ()
Вложенные циклы
Разрешено вложение любых циклов в любые циклы.
Действует следующее правило: для каждой итерации внешнего цикла выполняются все итерации внутреннего цикла.
… void main()
{ for (int i =0 ; i < 3 ; i ++ ) // внешний цикл
{ cout <<’\n’<< i ; // переменная i действует до конца блока
// функции main
for ( int i = 6 ; i>3 ; i-- ) cout << i ; //переопределение
// другой переменной с тем же именем до конца блока
// внешнего цикла
cout << i ;
}
} 0 6 5 4 3
1 6 5 4 3
2 6 5 4 3
Операторы передачи управления
К операторам передачи управления относятся:
- оператор безусловного перехода goto,
- оператор возврата из функции return,
- оператор выхода из цикла или переключателя break,
- оператор перехода к следующей итерации цикла continue.
goto A; //- ошибка
float x = 1.2;
goto A; //- допустимо
{int n=2;
x*=n;}
A: cout <<x;
Форма оператора безусловного перехода:
goto идентификатор метки;
Передача управления разрешена на любой оператор, помеченный меткой.
Имя метки действует и уникально в теле функции, где расположен оператор.
Существует запрет: нельзя передавать управление через определение, содержащее инициализацию объекта, но можно обходить вложенные блоки, содержащие определение с инициализацией.
При использовании оператора goto рекомендуется:
не входить внутрь блока извне;
не входить внутрь условного оператора;
не входить извне внутрь переключателя;
не передавать управление внутрь цикла;
Есть случаи, когда использование оператора goto обеспечивает наиболее простое решение:
выход из нескольких вложенных циклов или переключателей;
к одному участку программы перейти из разных мест функции;
Оператор возврата из функции имеет вид:
return выражение; или return;
Возвращает в точку вызова функции значение выражения, которое, если присутствует, может быть только скалярным.
Если выражение в операторе return отсутствует, то возвращаемое функцией значение имеет тип void.
Оператор выхода из цикла или переключателя break.
Прекращает выполнение операторов цикла или переключателя и осуществляет передачу управления к следующему за циклом или переключателем оператору.
При многократном вложении циклов и переключателей оператор break не может передать управление из внутреннего уровня на самый внешний. break позволяет выйти, из внутреннего цикла в ближайший внешний цикл.
Оператор перехода к следующей итерации continue (используется только в циклах).
Завершает текущую итерацию цикла и начинается проверка условия продолжения цикла. Его действия эквивалентны оператору передаче управления в самом конце тела цикла.
#define n 100
main (){
int k, i ;
float x [n] = { …} , s ;
for ( s=0.0 , k = 0, i = 0 ; i < n; i++ )
{ if ( x[i] <=0.0) continue ;
k++ ; //количество только положительных элементов
s + = x[i]; // сумма положительных элементов
}
