
- •Лекция №3
- •Оператор #include
- •Void main(void)
- •Группирующие операторы { }
- •6.1. Простые операторы
- •6.1.1. Оператор «выражение»
- •6.1.2. Пустой оператор
- •6.1.3. Составной оператор
- •6.1.4. Оператор прерывания ( break)
- •6.1.6. Оператор return
- •6.1.7. Оператор безусловного перехода ( goto)
- •6.2. Сложные операторы
- •6.2.1. Оператор условия ( if)
- •6.2.2. Оператор выбора ( switch)
- •6.2.3. Оператор цикла с параметрами ( for)
- •6.2.4. Оператор цикла с предусловием ( while)
- •6.2.5. Оператор цикла с постусловием ( do while)
6.2.4. Оператор цикла с предусловием ( while)
Оператор цикла 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> void main() { 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"); } }
6.2.5. Оператор цикла с постусловием ( do while)
Оператор цикла do while называется оператором цикла с постусловием и используется в тех случаях, когда необходимо выполнить тело цикла хотя бы один раз.
Форма записи:
do ТелоЦикла while (выражение);
Схема выполнения оператора do while :
1. Выполняется тело цикла (которое может быть составным оператором).
2. Вычисляется выражение.
3. Если выражение ложно, то выполнение оператора do while заканчивается и выполняется следующий по порядку оператор. Если выражение истинно, то выполнение оператора продолжается с пункта 1.
Чтобы прервать выполнение цикла до того, как условие станет ложным, можно использовать оператор break.
Операторы do while могут быть вложенными.
Пример: Найти максимальное из N чисел.
#include<stdio.h>
#include<conio.h>
void main()
{ const N=10;
int I=1;
float A, MAX;
printf("Введите %d чисел",N);
do
{ scanf("%f",&A);
if (I==1) MAX=A;
if (MAX<A) MAX=A;
I++;}
while(I<=N);
printf("MAX= %f",MAX);
getch();
}