Оператор цикла while
В общем виде цикл while записывается так:
while (<выражение>) <оператор>;
Цикл while является «условным» циклом, использующим предусловие (т.е. условие на входе). Он называется условным, потому что выполнение оператора зависит от истинности условия, описываемого с помощью выражения. .
Если выражение «истинно» (или в общем случае не равно нулю), то оператор, входящий в цикл while, выполняется один раз, а затем выражение проверяется снова. Эта последовательность действий, состоящая из проверки и выполнения оператора, периодически повторяется до тех пор, пока выражение не станет ложным (или в общем случае равным нулю). После этого управление передается оператору, следующему за оператором цикла while.
При построении цикла while необходимо включить в него какие-то конструкции, изменяющие величину проверяемого выражения так, чтобы в конце концов оно стало ложным. В противном случае выполнение цикла никогда не завершится.
Пример 1. Алгоритм Евклида.
Программа 91
#include<stdio.h>
main()
{
int x,y;
scanf("\n%d",&x); scanf("\n%d",&y) ;
while (x!=y)
{
if (x>y) x=x-y; else y=y-x;
)
printf("\n%d",x);
)
Пример 2. Проверить, содержит ли квадрат натурального числа n цифру 3.
Программа 92
#include<stdio.h>
main()
{
int i,n,a;
scanf("%d",&n); n=n*n; i=10000;
while(i>=l)
{
a=n/i; /* если результат целочисленного деления n/i
меньше 1,то а=0 */
n=n-a*i;
if(a==3) goto abc; else i=i/10;
)
printf("цифры 3 в числе n^2 нет");
goto cd;
abc: printf("цифра 3 в числе n^2 есть");
cd: ;
}
Оператор цикла do/while
В языке Си имеется также конструкция цикла с постусловием (условие на выходе), где истинность условия проверяется после выполнения каждой итерации цикла. Этот подход реализуется с помощью цикла do/while.
Тело цикла do/while всегда выполняется по крайней мере один раз, поскольку проверка условия осуществляется только после его завершения.
Форма записи:
do <оператор>
while (<выражение>);
Оператор break
Оператор break дает возможность выйти из операторов цикла for, while, do/while, а также из переключателя switch без проверки условия. Оператор break приводит к немедленному выходу из самого внутреннего охватывающего его цикла или из переключателя.
Оператор break может использоваться для выхода из цикла в тех случаях, когда заданы два разных условия прекращения его работы.
Программа 93
# include<stdio.h>
main()
{
int x=l,y,z;
printf("Мы будем вычислять значение функции y=2*x+z\n");
printf("Введите значение z:"); scant("%d",&z);
while(x<1000)
(
y=2*x+z;x++; if y=100 ( printf(= 100\n"); break; }
} if y=100
printf("Цикл закончен!!!") ;
else printf ("Цикл закопчен!!! Но y<>lOO.");
}
Наличие оператора break позволяет использовать «бесконечные циклы». В ряде случаев весьма удобно записать заголовок цикла без всякого условия в виде
for(;;),
а выход из цикла оформить с помощью операторов break.
Дата добавления: 2020-02-05; просмотров: 532;