Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на C / C++ / Лекции по C++ ОККТ "Сервер" [12].pdf
Скачиваний:
84
Добавлен:
02.05.2014
Размер:
1.04 Mб
Скачать

Одесский колледж компьютерных технологий "СЕРВЕР"

k = a + b;

metka: int m = k + 1; ...

}

После выполнения этого фрагмента программы значение переменной m не определено.

Использование оператора goto оправдано только в двух случаях:

принудительный выход вниз по тексту программы из нескольких вложенных циклов или переключателей;

переход из нескольких мест функции в одно (например, если перед выходом из функции необходимо всегда выполнять какие-либо действия).

Востальных случаях для записи любого алгоритма существуют более подходящие средства, а использование goto приводит только к усложнению структуры программы и затруднению отладки. Применение goto нарушает принципы структурного и модульного программирования, по которым все блоки, из которых состоит программа, должны иметь только один вход и один выход.

Оператор break

Оператор break используется внутри операторов цикла, if или switch для обеспечения перехода в точку программы, находящуюся непосредственно за оператором, внутри которого находится break.

Оператор continue

Оператор перехода к следующей итерации цикла continue пропускает все операторы, оставшиеся до конца тела цикла, и передает управление на начало следующей итерации.

Оператор return

Оператор возврата из функции return завершает выполнение функции и передает управление в точку ее вызова. Вид оператора:

return [ выражение ];

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

Случайные числа

Обе функции описаны в заголовочном файле: <stdlib.h> random (x);

Возвращает случайное целое число в диапазоне от о до x. Передпервым обращениемкфункцииrandom необходимо инициализировать генератор случайных чисел. Для этого надо вызвать функцию randomize().

randomize( x);

24

Одесский колледж компьютерных технологий "СЕРВЕР"

Инициализирует генератор случайных чисел. Использует функцию времени, описаннуювзаголовочномфайле<time.h> (еготоженужноподключить)

Вложенные циклы.

Все слышали вальс. Его ритм: раз-два-три, раз-два-три, раз-два-три и так далее. Налицо цикл (раз-два-три), который повторяется определенное число раз, то есть опять в цикле. Такая конструкция называется вложенным

циклом.

Пример:

 

for(int n=0;n<3;n++){

//наружный цикл

for(int m=0;m<5;m++){

//вложенный цикл

cout << m;

//тело вложенного цикла

}//конец вложенного цикла

cout <<n;

//вывод именно этого оператора отмечен жирным ниже.

}

//конец наружного цикла

При выполнении этого куска программы на экране появится следующее: 012340012341012342

Выделенные жирным шрифтом цифры – содержимое n. Посмотрим, как это работает.

1.Наружный цикл n начался. Объявилась переменная n, в нее попало значение 0. Затем, после проверки условия на истинность, управление перешло к телу цикла.

2.Здесь начинается внутренний цикл m. С ним произошло все то же самое. Управление перешло к телу цикла m.

3.Оператор cout выводит на экран содержимое переменной m, затем управление возвращается в начало цикла и здесь m возрастает. Это происходит до тех пор, пока m не перестанет удовлетворять условию (m<5).

4.Затем происходит выход из цикла m. На экран выводится содержимое n.

5.Начинается следующий проход n. n возрастает, и все с п. 2 повторяется, пока n не перестает удовлетворять условию (n<3)

Какие из этого следуют выводы?

1.Цикл m весь выполняется столько раз, сколько итераций совершает цикл n.

2.Цикл m каждый раз начинается сначала.

Это простая, но незаменимая конструкция. С помощью вложенного цикла, например, происходит очистка экрана. То есть, один цикл очищает строку по одной точке, а другой – весь экран по одной строке. Цикл, который рисует строку, вложен в него.

25