Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Использование операторов 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.
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); } Результаты будут иметь вид. Некоторые промежуточные шаги пропущены.
Сложные (вложенные) циклы Сложный цикл образуется, когда один цикл входит в другой цикл и т.д. Уровень вложенности цикла – количество вложенных друг в друга циклов. Пример 3.17 вложенного цикла: Вычислить f = 2,7*sin(x) + 1,3*cos(y), где величины x и y изменяются следующим образом: -3 ≤ x ≤ 3 Δx = 0,1 -4 ≤ y ≤ 4 Δy = 0,2 Рассмотрим 3 варианта реализации: 1. С использованием цикла while; float x = -3, y; while (x<=3) { y = -4; while (y <=4) { f = 2.7*sin(x) + 1.3*cos(y); printf(“x=%.1 y=%.1f f=%.3f\n”, x, y, f); y + = 0.2; } x +=0.1; } 2. С использованием цикла do while; float x = -3, y; do { y = -4; do { f = 2.7*sin(x) + 1.3*cos(y); printf(“x=%.1 y=%.1f f=%.3f\n”, x, y, f); y+ = 0.2; } while (y <=4)
x+=0.1; } while (x<=3)
3. С использованием цикла for.
float x, y; for (x=-3; x<=3; x+=0.1) for (y=-4; y<=4; y+=0.2) { f=2.7*sin(x)+1.3*cos(y); printf(“x=%.1 y=%.1f f=%.3f\n”, x, y, f); } Контрольные вопросы для самопроверки 1. Для чего используется оператор переключения switch? 2. Форма записи оператора переключения switch. 3. Когда срабатывает ветвь default? 4. Для чего предназначены операторы цикла? 5. Как работают операторы цикла? 6. Как выглядит структура цикла с постусловием? 7. Схема работы цикла do... whileс постусловием. 8. Как выглядит структура цикла с предусловием? 9. Схема работы цикла while с предусловием. 10. Схема работы цикла for. 11. Назначение оператора break. 12. Назначение оператора continue. 13. Как используется вложенный оператор цикла?
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2021-04-04; просмотров: 56; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.217.14.208 (0.007 с.) |