Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
С_глава1.doc
Скачиваний:
1
Добавлен:
16.12.2018
Размер:
548.86 Кб
Скачать

Оператор цикла с предусловием (while)

В общем виде цикл while записывается так:

while (выражение)

оператор;

Здесь – while – ключевое слово (имя оператора цикла с предусловием);

выражение - это условное выражение или выражение любого типа;

оператор - оператор тела цикла или группа операторов, заключенных в фигурные скобки.

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

сначала вычисляется выражение - условие продолжения цикла;

если это выражение истинно (не равно нулю), то выполняется оператор,

затем снова проверяется условие продолжения цикла, и если оно истинно, то выполняется оператор, затем снова проверяется условие и т.д.

если условие продолжения цикла ложно (равно 0), то происходит выход из цикла.

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

Пример. Вычислить y=x2 на интервале 0<=x<=1 с шагом x=0.1 с использованием оператора while.

#include <stdio.h>

int main()

{

float x,y;

x=0.;

while (x <=1.000001)

{

y=x*x;

printf(“x=%f y=%f\n”,x,y);

x=x+0.1;

}

return 0;

}

Пояснения.

Так как переменная x в программе описана как float, то проверка строгого равенства величины x, полученной многократным суммированием, и числа 1.0 некорректна из-за ошибок округления. Чтобы цикл наверняка выполнился и для значения x=1.0, необходимо заменить проверку неравенства x<=1.0 проверкой неравенства x<=1.000001.

Оператор цикла с постусловием (do - while)

Оператор цикла с постусловием записывается так:

do

{

оператор;

}

while (выражение);

Здесь - do – ключевое слово;

оператор - оператор тела цикла или группа операторов, заключенная в фигурные скобки;

выражение - это условное выражение или выражение любого типа;

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

сначала выполняется оператор тела цикла;

затем проверяется условие продолжения цикла;

если это выражение истинно (не равно нулю), то снова выполняется оператор, затем снова проверяется условие и т.д.;

если условие продолжения цикла ложно (выражение равно 0), то происходит выход из цикла.

Если условие продолжения цикла ложно с самого начала, то сначала выполнится оператор, а после этого произойдет выход из цикла, т.е. цикл с постусловием выполнится по крайней мере один раз.

Пример. Вычислить y=x2 на интервале 0<=x<=1 с шагом x=0.1 с использованием оператора цикла do-while

#include <stdio.h>

int main()

{

float x,y;

x=0.;

do

{

y=x*x;

printf(“x=%f y=%f\n”,x,y);

x=x+0.1;

}

while (x<=1.000001);

return 0;

}

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

Оператор цикла for записывается следующим образом:

for (выражение1;выражение2;выражение3)

оператор;

Здесь выражение1 содержит операторы, в которых одному или нескольким переменным присваиваются начальные значения (через запятую);

выражение2 представляет собой условие продолжения цикла;

выражение3 содержит операторы-модификаторы (операторы, изменяющие значения одной или нескольких переменных – через запятую);

оператор - оператор тела цикла или группа операторов, заключенная в фигурные скобки;

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

- сначала выполняются операторы выражение1;

- затем проверяется условие продолжения цикла выражение2;

- если это условие истинно (значение не равно 0), то выполняется оператор;

- затем выполняются операторы-модификаторы выражение3;

- затем снова проверяется условие продолжения цикла выражение2, если оно истинно, то выполняется оператор тела цикла, затем операторы модификаторы, затем снова проверяется условие продолжения цикла и т.д.;

- если условие продолжения цикла ложно, то происходит выход из цикла

Если условие продолжения цикла ложно с самого начала, то оператор не выполнится ни разу. Любое из трех или все три выражения в операторе for могут отсутствовать, однако разделяющие их точки с запятыми (;) опускать нельзя. Если опущено выражение2, то считается, что оно постоянно истинно. Оператор for(;;) представляет собой бесконечный цикл, эквивалентный оператору while(1).

Пример Вычисления y=x2 на интервале 0<=x<=1 с шагом x=0.1 с использованием оператора цикла for.

#include <stdio.h>

int main()

{

float x,y;

for (x=0.;x<=1.000001;x=x+0.1)

{

y=x*x;

printf(“x=%f y=%f\n”,x,y);

}

return 0;

}