Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР7-С++-05 апреля-2012.doc
Скачиваний:
19
Добавлен:
15.09.2019
Размер:
2.45 Mб
Скачать

1.12. Операторы перехода и их использование в циклах

Операторы перехода выполняют безусловную передачу управления. При организации ЦВП используются следующие операторы break, continue, return, goto

1.12.1. Оператор прерывания циклов break

Для выхода из цикла можно использовать оператор break.

Назначение. Прекращение выполнения цикла с передачей управления следующему за циклом оператору.

Синтаксис.

break;

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

Оператор break прекращает выполнение ближайшего к нему цикла или оператора switch.

Пример.

Найти сумму арифметической прогрессии всех чисел натурального ряда, которая не превышает некоторого наперед заданного значения, например, n:

void main(void)

{

int n, Sum = 0, i; // i — числа натурального ряда

printf("\nВведите наибольшее значение\n");

scanf ("%d", &n);

for (i = 1; ;i ++) // бесконечный цикл

{ // суммирует числа i

Sum += i;

if (Sum > n) // условие завершения

break; // условие завершения

}

printf ("Количество элементов, включенных в сумму %d\n", i);

}

Особенности. В случае вложения циклов оператор break прерывает только непосредственно охватывающий цикл.

Досрочный выход из операторов цикла выполняет оператор break, а оператор continue выполняет передачу управления в головной оператор цикла.

Операторы перехода выполняют безусловную передачу управления.

1) break - оператор прерывания цикла.

{

< операторы>

if (<выражение_условие>) break;

<операторы>

}

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

Пример:

// ищет сумму чисел вводимых с клавиатуры до тех пор, по­ка не будет введено 100 чисел или 0

for(s=0, i=l; i<10 0;i++)

{

cin>>x;

if( x==0) break; // если ввели 0, то суммирование закан­чивается s+=x;

}

1.Break – оператор прерывания цикла.

{

оператор;

if (<выражение_условие>) break;

оператор;

}

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

// Найти сумму чисел, числа вводятся с клавиатуры до тех пор, пока не будет //введено 100 чисел или 0.

for(s=0, i=1; i<100;i++)

{

cin>>x;

if( x==0) break; // если ввели 0, то суммирование заканчивается

s+=x;

}

1.12.2. Оператор перехода к следующей итерации цикла continue

2. continue – переход к следующей итерации цикла. Он используется, когда тело цикла содержит ветвления.

//Найти количество и сумму положительных чисел

for( k=0,s=0,x=1;x!=0;)

{

cin>>x;

if (x<=0) continue;

k++; s+=x;

}

2) continue - переход к следующей итерации цикла. Он ис­пользуется, когда тело цикла содержит ветвления.

Пример:

//ищет количество и сумму положительных чисел

for( :<=0, s=0,x=l;x !=0;)

{

cin>>x;

if (х<=0) continue; k++;s+=x;

}

Оператор continue передает управление на проверку условия циклов while и do while, либо на инкрементирующее выражение цикла for.