Операторы цикла

Операторы цикла

Оператор while –это оператор цикла с предусловием(проверя­ется условие, и пока условие истинно повторяется тело цикла).

Пример 1. Вычисляем сумму четных чисел, пока сумма меньше 20.

#include <stdio.h>

void main( )

{int a=0,cout=0;

int sum=0;

while(sum<20)

{cout+=1; //

a+=2; //

sum+=a;} //

printf(“a=%d sum=%d cout=%dn”,a,sum,cout);

}

Цикл выполнится__ раз

На экране:

Пример 2.

#include <stdio.h>

void main( )

{int i=0;

while(i++, i<3) printf(“Привет ”); //

printf("Прощай");

}

Цикл выполнится__ раз

На экране:

Пример 3.

#include <stdio.h>

void main( )

{int i=0;

while(i<3, i++)

printf(“Привет ”); //

printf("Прощай");

}

Цикл выполнится__ раз

На экране:

Пример 4.

#include <stdio.h>

void main( )

{int i=0;

while(i<3,++i) printf(“Привет ”); //

printf("Прощай");

}

Цикл выполнится_______ раз

На экране:

Оператор continueпропускает остаток тела цикла и переходит к следующей итерации (начинает проверку условия на дальнейшее повторение вычисления тела цикла).

Оператор break завершит выполнение всего цикла и передает управление к оператору, следующему за циклом.

Оператор returnзавершит выполнение всей программы.

Пример 5. Находим сумму первых 4-х нечетных чисел и подсчитываем число четных и нечетных вводимых с клавиатуры чисел.

#include <stdio.h>

void main( )

{int n1=0,n2=0,a,sum=0;

while (n1<4)

Scanf(“%d”,&a); //пусть будем вводить1 2 3 4 5 6 7

if(a%2==0) //

{n2++; //

continue; }

n1++; //

sum+=a; //

}

printf(“n1=%d n2=%d sum%dn”,n1,n2,sum); }

Цикл выполнится__ раз

На экране:

Пример 6. Находим произведение вводимых с клавиатуры чисел, при вводе 0 цикл завершается.

#include <stdio.h>

void main( )

{int i=0,n=0,a,Pr=1,k;

puts("введите количество чисел");

Scanf(“%d”,&k); //пусть k=4

printf("введите %d чиселn",k);

while(i<k)

Scanf(“%d”,&a); //пусть будем вводить 2 3 4 5 или 2 3 0

{printf(“Умножение на 0! ”); n=1; break;} i++; // Pr*=a; //

Scanf(“%f”,&b); //пусть будем вводить 2 4 4 5 или 2 4 0

{printf(“i=%d div=%.2f+1/0,деление на 0”,i,div,b); return;} div+=1.0/b; //

Пример 8. К переменной m добавляется 1, пока mменьше4.

#include <stdio.h>

void main()

{int m=1; // int m=10;

do{printf(“%d ”,m);//

m++; //

} while (m<4);

printf(“m=%d ”,m);

}

1 случай цикл выполнится __ раз,

на экране:

2 случай цикл выполнится __ раз,

на экране:

Пример 9. От переменной m отнимается 1, пока mне равно0.

#include <stdio.h>

void main()

{int m=3;

do;

while(printf("%d ",m), m––); //

printf(“m=%d”,m); //

}

На экране:

Пример 10. От числа g отнимается 0.1, пока gбольше0.

#include <stdio.h>

void main()

{float g=1.0;

do {printf(“g=%.1f ”,g);

g–=0.1; //

}while(g>0); } //

// }while(g!=0);} //

1 случай цикл выполнится __ раз,

на экране:

2 случай цикл выполнится __ раз,

на экране:

Пример 11. Подсчитываем количество заданных цифр 5во введенном с клавиатуры целом числе.

#include <stdio.h>

void main()

{unsigned long a,a1,m=5;

int k=0;

puts(“введите число не больше 4 000 000 000”);

Scanf(“%lu”,&a); //пусть введем число 512535

a1=a;

Do{if(a1%10==m) k++; //сравниваем последнюю цифру числа с 5

a1/=10; // уменьшаемчисло в 10 раз

While(a1>0); //пока число больше0

printf(“В числе %lu количество цифр %lu равно %dn”,a,m,k);

}

На экране:В числе 512535 количество цифр 5 равно 3

Оператор итерационного цикла

For(инициализация; условие; список_выражений) тело_цикла

Пример 12. Находим сумму четырех чисел, кратных 10, начиная с 0. #include <stdio.h> void main()

Пример 16. К переменной m добавляется 1, от переменной kотнимается1,до тех пор, пока kне равно0.

#include <stdio.h>

void main()

{int m=4, k=5;

for( ; ; k––) //

{if(k==0) break;

m++; printf(“%d”, m); }

}

Цикл выполнится __ раз,

На экране:

Все операторы цикла взаимозаменяемы.

Пример 17.Пример 14 с использованием оператора while

#include <stdio.h>

void main()

Int i=0; // инициализация i

while(i<5)

{if(i==3) continue;

printf(“%d ”, i); //

i++;}

}

На экране:

Пример 18. Пример 14 с использованием оператора do while.

#include <stdio.h>

void main()

Int i=0; // инициализация i

printf(“%d ”, i); // i++; }while(i<5);

Операторы перехода

Оператор безусловного перехода (goto имя_метки;)передает управление на любой оператор, помеченный меткой в теле функции.

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

Оператор gotoможно использовать, если из разных мест обращаемся к одному месту в пределах текста одной функции, а также для выхода из нескольких вложенных друг в друга циклов или переключателей (оператор breakобеспечивает выход из самого внутреннего цикла или переключателя).

if (n>=n_max) goto M1; //

n++;

M1: printf(“n=%d”, n);

В настоящее время общепринято, что оператор gotoзапутывает программу, поэтому его лучше не использовать.

Оператор возврата из функции returnзавершает любую функцию, в т.ч. и главную функцию main(),т.е. является последним оператором функции.

Оператор принудительного выхода из цикла (переключателя) break прекращает выполнение оператора цикла или переключателя и осуществляет передачу управления к оператору, следующему за циклом или переключателем.

Оператор выхода из текущей итерации continue завершает выпол­нение тела цикла и начинает проверку условия на дальнейшее продолжение цикла, используется только в операторах цикла.