Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л3.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
129.54 Кб
Скачать

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();

}

15

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]