Использование операторов break и continue в циклах

3.9.1. Оператор break

При обычной работе операторов цикла количество повторений, а также и выход из цикла зависит от начальных и конечных значений переменных цикла и принципа изменения параметра цикла. В Си существует возможность изменения этого порядка.

Оператор break позволяет прервать работу цикла, в котором он записан, и после его срабатывания управление передается оператору, который расположен после цикла.

На практике break записывается не самостоятельно в операторе цикла, а в составе условного оператора, истинность которого и определяет окончание роботы цикла.

Структура программ с использованием оператора break:

for ()

{...;

z=...;

if(z<0) break;

.....

}

 

Оператор continue

 

Оператор continue – позволяет пропустить следующую за ним группу операторов и возобновить работу цикла на следующем шаге цикла.

На практике continue записывается не самостоятельно в операторе цикла, а в составе условного оператора, истинность которого и определяет переход на следующий шаг.

Структура программы с использованием оператораcontinue

while()

{

y=...

if(y <0) continue;

...

}

Пример 3.17: Задано выражение, с помощью которого вычисляется у

  для  ряда значений х: xнач=5 xkон=-5 dx=-0.5

Найти сумму значений y.

При анализе выражения, можно заметить, что при достижении х определенного значения подкоренное выражение станет отрицательным и вычисления следует прекратить. Воспользуемся для этого оператором break

void main ()

{

 float xn=5, xk=-5, x, s=0, y,dop, xsh=-0.5, a;

 int i, n;

n=((xk-xn)/xsh)+1;

x=xn;

printf("введите значении а");

scanf(“%f”,&a);

for (i=1;i<=n;i++)

{     dop=a+x;

if (dop<0) break;

y=x*x/sqrt(dop);

s=s+y;

printf("%d %5.2f %5.2f\n",i, x, y);

x=x+xsh;

}

printf("s=%5.2f\n",s); 

}

При значении а=1, результаты будут иметь вид, хотя по расчетов циклов должно быть 21.

i x y
1 5.00 10.21
2 4.50 8.63
3 4.00 7.16
4 3.50 5.77
5 3.00 4.50
6 2.50 3.34
7 2.00 2.31
8 1.50 1.42
9 1.00 0.71
10 0.50 0.20
11 0.00 0.00
12 -0.50 0.35

 

S=44.61

 

Пример 3.18: Задано выражение, с помощью которого вычисляется у

для  ряда значений х – xнач==-3.14 xkон=6.28 xsh==3.14/20

При анализе выражения, можно заметить, что поскольку значения синуса изменяется в пределах от -1 до +1, периодически подкоренное выражения будут становиться отрицательными. Эти случаи следует пропускать. Воспользуемся для этого оператором continue

void main ()

{

float xn, xk, x, y, dop, xsh;

int i=0;

xn=-3.14; xk=6.28;

xsh=3.14/20;

   

x=xn-xsh;

do

{

i=i++;

x=x+xsh;

dop=0.5-sin(x);

if (dop<=0) continue;

y=(x*x+5)/sqrt(dop);

printf("%d %5.2f %5.2f\n",i, x, y);

}

while (x<=xk);

 }

Результаты будут иметь вид. Некоторые промежуточные шаги пропущены.

 

i x y
1 -3.14 20.98
2 -2.09 8.03
3 -1.05 5.22
4 -0.00 7.07
7 3.14 21.05
8 4.19 19.28
9 5.23 27.70
10 6.28 62.65

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: