You are on page 1of 42

Структури повторення

продовження
Структура повторення do/while
Структура повторення do/while подібна структурі while. У структурі
while умова продовження циклу перевіряється на початку циклу до
виконання операторів тіла циклу.
Структура do/while перевіряє умову продовження циклу після
виконання тіла циклу, і тому тіло циклу буде виконано хоча б один
раз.
Після завершення циклу do/while виконання програми
продовжується з оператора, який записаний після речення while.
Формат структури повторення do/while
do {блок} while (вираз);

де
блок– послідовність дій (тіло циклу)

вираз - умова закінчення циклу


Графічне зображення do/while
Приклад 1
Написати програму, яка виводить на екран числа від 1 до 10.
Структура do/while

#include <stdio.h>
int main()
{
int counter = 1;
do {
printf("%d ",counter);
} while (++counter <= 10);
return 0;
}
#include <stdio.h>
int main()
{
int counter = 1;
do {
printf("%d ",counter);
counter++;
} while (counter <= 10);
return 0;
}
Структура for
#include <stdio.h>
int main()
{ int counter ;
for (counter=1; counter<=10; counter++)
printf("%d ",counter);
return 0;
}
Структура for
#include <stdio.h>
int main()
{ int counter=1 ;
for (; counter<=10; counter+=1)
printf("%d ",counter);
return 0;
}
Структура for
#include <stdio.h>
int main()
{ int counter=1 ;
for (; ; counter+=1)
{ printf("%d ",counter);
if (counter==10) break;}
return 0;
}
Структура for
#include <stdio.h>
int main()
{ int counter=1 ;
for (; ;)
{ printf("%d ",counter);
if (counter==10) break;
counter=counter+1;}
return 0;
}
Структура while
#include <stdio.h>
int main()
{ int counter =1;
while (counter<=10)
printf("%d ",counter++);
return 0;
}
Структура while
#include <stdio.h>
int main()
{ int counter =1;
while (counter<=10)
{
printf("%d ",counter);
counter = counter +1;
}
return 0;
}
Оператори break i continue
• Оператори break i continue призначені для зміни ходу виконання
дій у програмі.
• Виконання оператора break у структурах switch, for, while,
do/while призведе до негайного виходу зі структури. Виконання
програми продовжується з першого оператора, який записаний
після неї.
#include <stdio.h>
int main()
{ int x;
for (x = 1; x <= 10; x++) {
if (x == 5) break;
printf("%d ",x);
}
printf("Break on x == %d",x);
return 0;
}
• В прикладі оператор break використовується в структурі for. Коли
значення змінної x стає рівним 5, виконується оператор break. Це
завершує цикл, а програма продовжує виконуватись з оператора
printf. Цикл виконується повністю тільки чотири рази.
• Виконання оператора continue у структурах for, while, do/while
призведе до пропуску операторів, що залишилися, у тілі цих
структур і виконання наступної ітерації циклу.
#include <stdio.h>
int main()
{ int x;
for (x = 1; x <= 10; x++) {
if (x == 5) continue;
printf("%d ",x);
}
return 0;
}
У наступному прикладі оператор continue використовується
в структурі for. Коли значення змінної x стає рівним 5,
виконується оператор continue. Це дозволяє пропустити
оператор printf і програма продовжує виконувати наступну
ітерацію циклу.
Приклад 2.Обчислити функцію y=5x
( x від 1 до 5 с кроком 0.5)
#include <stdio.h>
int main()
{ float x, y;
for(x=1;x<=5;x=x+0.5)
{
y=5*x;
printf("Rezult=%.2f\n",y);
}
return 0;
}
#include <stdio.h>
int main()
{ float x, y;
x=1;
while (x<=5)
{
y=5*x;
printf("Rezult=%.2f\n",y);
x=x+0.5;
}
return 0;
}
#include <stdio.h>
int main()
{ float x, y;
x=1;
do
{
y=5*x;
printf("Rezult=%.2f\n",y);
x=x+0.5;
}while (x<=5);
return 0;
}
Приклад 3. Обчислити значення за
формулою

за допомогою всіх циклічних структур


#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//f(x)=∑_(n=1)^К▒(3n+2^n )
int main()
{
int n,K;
int y=0;
printf("Enter K\n");
scanf("%d", &K);
for (n=1; n<=K;n++)
{
y=y+(3*n+ pow(2,n));
}

printf("\n\tresult = %d\n",y);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//f(x)=∑_(n=1)^К▒(3n+2^n )
int main()
{
int n,K;
int y=0;
printf("Enter K\n");
scanf("%d", &K);
n=1;
while(n<=K)
{
y=y+(3*n+ pow(2,n));
n++;
}
printf("\n\tResult = %d\n",y);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//f(x)=∑_(n=1)^К▒(3n+2^n )
int main()
{
int n=1,K;
int y=0;
printf("Enter K\n");
scanf("%d", &K);
do
{
y=y+(3*n+ pow(2,n));
n++;
}while (n<=K);
printf("\n\tResult_ = %d\n",y);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//f(x)=∑_(n=1)^К▒(3n+2^n )
int main()
{
int n,K;
int y=0;
printf("Enter K\n");
scanf("%d", &K);
for (n=1; n<=K;n++)
{
y=y+(3*n+ pow(2,n));
}
printf("\n\tResult_1 = %d\n",y);
while(n<=K)
{
y=y+(3*n+ pow(2,n));
n++;
}// буде пропущено
printf("\n\tResult_2 = %d\n",y);
do
{
y=y+(3*n+ pow(2,n));
n++;
}while (n<=K);//спрацює для n=K+1
printf("\n\tResult_3 = %d\n",y);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//f(x)=∑_(n=1)^К▒(3n+2^n )
int main()
{
int n,K;
int y=0;
printf("Enter K\n");
scanf("%d", &K);
for (n=1; n<=K;n++)
{
y=y+(3*n+ pow(2,n));
}
printf("\n\tResult_1 = %d\n",y);
n=1;
while(n<=K)
{
y=y+(3*n+ pow(2,n));
n++;
}
printf("\n\tResult_2 = %d\n",y);
n=1;
do
{
y=y+(3*n+ pow(2,n));
n++;
}while (n<=K);
printf("\n\tResult_3 = %d\n",y);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//f(x)=∑_(n=1)^К▒(3n+2^n )
int main()
{
int n,K;
int y=0;
printf("Enter K\n");
scanf("%d", &K);
for (n=1; n<=K;n++)
{
y=y+(3*n+ pow(2,n));
}
printf("\n\tResult_1 = %d\n",y);
n=1;
y=0;
while(n<=K)
{
y=y+(3*n+ pow(2,n));
n++;
}
printf("\n\tResult_2 = %d\n",y);
n=1;
y=0;
do
{
y=y+(3*n+ pow(2,n));
n++;
}while (n<=K);
printf("\n\tResult_3 = %d\n",y);
return 0;
}

You might also like