Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информат.Лек.фр.doc
Скачиваний:
15
Добавлен:
10.11.2019
Размер:
5.51 Mб
Скачать

13.1.3. Оператор цикла do . . . While

Этот цикл с послеусловием. Синтаксис оператора следующий:

do

оператор;

while ( условие );



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

х = хн ;

do

{

y = a*x;

x ++;

}

while ( x <= xк );

+ –

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

13.1.4. Операторы continue, break

Эти операторы используются в операторе множественного выбора swith( ) и в телах операторов цикла.

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

х = хн;

while (x <= xк )

if ( x == 0 )

_ {

x += h;

+ continue;

}

else

{

+ y = a*sin(x)/x;

x += h;

}

Из приведенного примера видно, что при значении х = 0 производить вычисление функции у невозможно в связи с возникновением операции деления на нуль. Поэтому логично пропустить этот шаг вычислений и перейти к новому шагу, где х не равен нулю. В приведенном фрагменте программы переход к следующему шагу вычислений производится с помощью оператора continue;

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

Суть применения оператора break в цикле можно понять из фрагмента блок–схемы и, отвечающего ему, фрагмента программы.

х = хн ;

while ( x <= xк )

if ( x > b ) break;

+ else

+ {

y = a*sqrt (b – x );

x += h;

}

Из блок – схемы видно, что при всех x <= b вычисления возможны и цикл может работать. При достижении х своего первого значения, превышающего значение b, и при всех последующих значениях работа цикла становится невозможной, так как подкоренное выражение приобретает отрицательное значение. Поэтому будет логично досрочно завершить работу цикла. Это и осуществляется оператором break.