В общем виде цикл while записывается так:
while (выражение)
оператор;
Здесь – while – ключевое слово (имя оператора цикла с предусловием);
выражение - это условное выражение или выражение любого типа;
оператор - оператор тела цикла или группа операторов, заключенных в фигурные скобки.
Оператор цикла с предусловием выполняется следующим образом:
сначала вычисляется выражение - условие продолжения цикла;
если это выражение истинно (не равно нулю), то выполняется оператор,
затем снова проверяется условие продолжения цикла, и если оно истинно, то выполняется оператор, затем снова проверяется условие и т.д.
если условие продолжения цикла ложно (равно 0), то происходит выход из цикла.
Если условие продолжения цикла ложно с самого начала, то оператор не выполняется ни разу.
Пример. Вычислить y=x2 на интервале 0<=x<=1 с шагом Dx=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 с шагом Dx=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;
}