Лекции по проге / 4_Управл операторы - циклы (2)
.pdf
Оператор прерывания break
● Оператор break прерывает выполнение цикла или ветвления и переходит к следующему за циклом или ветвлением оператору
●В случае вложенных управляющих операторов break прерывает самый внутренний из них
21
Задание
Напечатать все элементы массива mass до первого нулевого значения. Изменить следующий код, используя оператор break:
for(i = 0; i < n; i++)
{
printf("%d", mass[i]);
}
_getch();
22
Пример использования оператора прерывания break
//Печатаем все элементы массива вплоть
//до нулевого значения
for(i = 0; i < n; i++)
{
if(mass[i] == 0) break;
printf("%d", mass[i]);
}
_getch();
23
Оператор пропуска итерации continue
●Оператор continue завершает текущий шаг цикла и переходит к следующему шагу
●Для циклов while и do...while это означает переход к проверке условия продолжения цикла
●Для цикла for это означает переход к оператору модификации (с последующей проверкой условия)
24
Задание
Напечатать все элементы массива mass кроме нулевых. Изменить следующий код, используя оператор continue:
for(i = 0; i < n; i++)
{
printf("%d", mass[i]);
}
_getch();
25
Пример использования оператора continue
//Печатаем все элементы массива
//кроме нулевых
for(i = 0; i < n; i++)
{
if(mass[i] == 0) continue;
printf("%d", mass[i]);
}
26 _getch();
"Опасные" операторы break и continue
● Операторы break (кроме оператора switch) и continue использовать не рекомендуется, т.к. они изменяют нормальный ход выполнения программы, что приводит к трудноуловимым ошибкам
●Чтобы избавиться от "опасных" операторов необходимо скорректировать условия в операторах цикла или ветвления
27
Задание
Напечатать все элементы массива mass кроме нулевых. Изменить следующий код, не используя оператор continue:
for(i = 0; i < n; i++)
{
if(mass[i] == 0) continue;
printf("%d", mass[i]);
}
28 _getch();
Замена оператора continue
//Печатаем все элементы массива
//кроме нулевых
for(i = 0; i < n; i++)
{
if(mass[i] != 0) printf("%d", mass[i]);
}
_getch();
29
Задание
Напечатать все элементы массива mass до первого нулевого значения. Изменить следующий код, не используя оператор break:
for(i = 0; i < n; i++)
{
if(mass[i] == 0) break;
printf("%d", mass[i]);
}
30 _getch();
