Оператор цикла while называется циклом с предусловием.
Форма записи:
while (выражение) ТелоЦикла;
Выражение всегда заключено в скобки. В качестве выражения допускается использовать любое выражение языка С++, а в качестве тела любой оператор, в том числе пустой или составной. Схема выполнения оператора while следующая:
1. Вычисляется выражение.
2. Если выражение ложно, то выполнение оператора while заканчивается и выполняется следующий по порядку оператор. Если выражение истинно, то выполняется тело оператора while.
3. Процесс повторяется с пункта 1.
Если повторяемая часть оператора содержит более одного оператора, то повторяемая группа операторов должна быть заключена в фигурные скобки скобки, например:
while(условие)
{
оператор_1;
оператор_2;
....
оператор
}
Оператор цикла вида
for (выражение-1; выражение-2; выражение-3) тело;
может быть заменен оператором while следующим образом:
выражение-1; while (выражение-2) { тело выражение-3; }Так же как и при выполнении оператора for, в операторе while вначале происходит проверка условия. Поэтому оператор while удобно использовать в ситуациях, когда тело оператора не всегда нужно выполнять.
|
|
Внутри операторов for и while можно использовать локальные переменные, которые должны быть объявлены с определением соответствующих типов.
Примеры:
1) Вычислить значение функции у=2*х+3 для х={0;3} с шагом h=0.5.
#include <stdio.h>
void main()
{
float x,y,h;
x=0;
h=0.5;
while ((x>=0)&&(x<=3))
{ y=2*x+3;
printf("x=%.3f y=%.3f\n",x,y);
x+=h;
}
}
2) Найти максимальное из N чисел.
#include<stdio.h>
#include<conio.h>
void main()
{
const N=10;
int I;
float A, MAX;
printf("Введите 1-ое из %d чисел\n",N);
scanf("%f",&A);
MAX=A;
I=2;
printf("Введите остальные числа\n",N);
while (I<=N)
{
scanf("%f",&A);
if (MAX<A) MAX=A;
I++;
}
printf("MAX= %f",MAX);
getch();
}
Структуры со вложенными друг в друга операторами повторения называются вложенными циклами.
Следующая программа простая, хотя и содержит вложенные циклы. Она выводит на экран заполненный символом * треугольник, высота которого равна N.
Во внешнем цикле устанавливается очередная строка вывода (параметр i), а во внутреннем (параметр j) в очередную строку вводится ровно i символов " * " Вызов функции printf("\n") обеспечивает в нужный момент переход на новую строку.
#include <stdio.h>
voidmain()
{
int i,j,N;
printf("ВВЕДИ N \n");
scanf("%d",&N);
i=1;
while(i <=N)
{j=1;
while(j <=i)
{printf("%c",'*');
j=j+1;
}
i=i+1;
printf("\n");
}
}