Do тело while (выражение);

Лабораторная работа №3

Программирование циклических процессов на языке С++

Цель: Изучение алгоритмов работы циклов и принципы их программирования на языке С++.

Основные сведения

Цикл — разновидность управляющей конструкции в высокоуровневых языках программирования, предназначенная для организации многократного исполнения набора инструкций. Основная цель циклов – сократить размер текста программы, когда в ходе вычислений требуется многократное выполнение некоторых инструкций, например обработка нескольких результатов опыта по одному и тому же алгоритму или перебор записей в базе данных для поиска по заданному условию. Циклический процесс можно реализовать без использования специализированных операторов, применяя условный оператор ifи оператор безусловного перехода goto. Однако такой подход является неэффективным, поскольку использование оператора goto нарушает иерархическую структуру программы и затрудняет понимание написанного кода. В языке С++ для реализации циклических вычислительных процессов используются операторы while, do whileиfor.

Оператор цикла while называется циклом с предусловием и имеет следующий формат:

while (выражение) оператор

В качестве выражения допускается использовать любое выражение языка Си, а в качестве тела любой оператор, в том числе пустой или составной. Схема выполнения оператора while следующая (рис.1):

1. Вычисляется выражение.

2. Если выражение ложно, то выполнение оператора while заканчивается и выполняется следующий по порядку оператор. Если выражение истинно, то выполняется тело оператора while.

3. Процесс повторяется с пункта 1. Do тело while (выражение); - student2.ru

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

Рассмотрим пример, в котором необходимо просуммировать вводимые с клавиатуры числа до тех пор, пока не будет введено нулевое значение.

int Sum=0, x; //в Sum будем накапливать сумму, в x хранить

//очередное введенное число

cin>>x; //вводим первое число

while (x!=0) //пока x не равно нулю, можно короче: while(x)

{

Sum+=x; //складываем очередное введенное число с суммой

cin>>x; //ввод следующего числа

}

cout<<Sum; //вывод посчитанной суммы

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

Оператор do while

Оператор цикла do while называется оператором цикла с постусловием и используется в тех случаях, когда необходимо выполнить тело цикла хотя бы один раз. Формат оператора имеет следующий вид:

do тело while (выражение);

Схема выполнения оператора do while (рис.2):

1. Выполняется тело цикла (которое может быть составным оператором).

2. Вычисляется выражение.

3. Если выражение ложно, то выполнение оператора do while заканчивается и выполняется следующий по порядку оператор. Если выражение истинно, то выполнение оператора продолжается с пункта 1.

Do тело while (выражение); - student2.ru

Рассмотрим вариант решения предыдущей задачи с суммированием вводимых с клавиатуры чисел с использованием цикла do while.

int Sum=0, x; //в Sum будем накапливать сумму, в x хранить

//очередное введенное число

do

{

cin>>x; //ввод числа

Sum+=x; //складываем очередное введенное число с суммой

}

while (x!=0) //пока x не равно нулю, можно короче: while(x)

cout<<Sum; //вывод посчитанной суммы

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

Операторы while и do while могут быть вложенными.

Пример:

int i,j,k;

...

i=0; j=0; k=0;

do { i++;

j--;

while (a[k] < i) k++;

}

while (i<30 && j<-30);

Оператор for представляет самые мощные средства организации цикла в языке Си++. Он имеет следующий формат:

Наши рекомендации