Лекция-06-07.ppt
- Количество слайдов: 12
Тема «Управляющие конструкции языка С» (продолжение) Лекция 16. 09. 13 г. 1
Обзор вопросов прошлой лекции ü ü ü ü ü Операции с присваиванием Тернарная условная операция Приоритет и ассоциирование операций Преобразование (приведение) типов Тема «Управляющие конструкции языка С» Простые операторы и блоки Операторы простого выбора Вложенные операторы выбора Оператор множественного выбора switch Лекция 16. 09. 13 г. 2
Операторы повторения (цикла) выраж-е ≠ 0 оператор (тело цикла) =0 Во многих алгоритмах встречается элементарная конструкция, приведенная на блок-схеме. Она соответствует многократному (циклическому) повторению оператора (или нескольких операторов в блоке), пока некоторое выражение не станет равным нулю (получит значение «ложь» ). Это записывается так: while(выражение) оператор Такая конструкция называется циклом с предусловием. //Ex 018. c – оператор while #include
Операторы повторения (цикла) выраж 1 выраж 2 ≠ 0 оператор (тело цикла) выраж 3 =0 В языке С существует еще одна форма цикла с предусловием, более сложная по сравнению с простейшей формой while. В этой форме дополнительно участвуют еще два выражения, одно из которых вычисляется однократно, до проверки условия, а второе – многократно, после всех операторов, выполняемых в цикле. Это записывается так: for(выраж 1; выраж 2; выраж 3) оператор В круглых скобках любое из выражений можно опустить, но точки с запятой обязательно должны присутствовать. Если опущено выраж 2, то оно считается =1. Поэтому конструкция: for(; ; ); является бесконечным циклом (как, впрочем, и конструкция while(1); Лекция 16. 09. 13 г. 4
Пример цикла Следующая программа преобразует символьное изображение числа, записанное в строке s, в само число. //Ex 019_Parser. c – парсер #include
Еще один пример цикла Следующая программа обращает порядок символов в строке s. //Ex 019_Reverse. c – обращение строки #include
Оператор цикла с постусловием оператор (тело цикла) ≠ 0 выраж-е =0 В некоторых случаях тело цикла должно быть выполнено хотя бы один раз, вне зависимости от истинности выражения. Это может быть реализовано, если проверка значения выражения будет располагаться после тела цикла. Это записывается так: do оператор while(выражение); Такая конструкция называется циклом с постусловием. Цикл с постусловием применяется на практике значительно реже, чем цикл с предусловием. Лекция 16. 09. 13 г. 7
Пример цикла с постусловием //Ex 020_Reverse. c – обращение строки #include
Оператор break Иногда возникает необходимость прервать выполнение тела цикла и «досрочно» выйти за пределы цикла. Это можно сделать, разместив в теле цикла оператор break. Это оператор вызывает «безусловный переход» в точку программы, расположенную непосредственно за циклом. Оператор break может использоваться в любом операторе цикла, а также в операторе множественного выбора switch. Пример: программа удаляет «незначащие» символы в конце строки s. //Ex 021. c – демонстрация break #include
Оператор continue Этот оператор похож на break, но, в отличие от break, досрочно прекращает выполнение текущей итерации цикла, а не всего оператора цикла. Для циклов while и do это означает переход к проверке условия, а для цикла for – вычисление выражения 3, а уже затем переход к проверке условия. Пример: подсчитать количество положительных элементов массива и найти их среднее арифметическое. //Ex 022. c – демонстрация continue #include
Оператор перехода goto и метки Оператор goto метка вызывает безусловный переход к оператору (в той же самой функции) перед которым записана метка (обычное имя, заканчивающееся символом : - двоеточие). Пример: проверить, имеют ли два массива хотя бы один общий элемент. //Ex 023_goto. c – демонстрация goto #include
Оператор перехода (продолжение) Оператор goto является «нежелательным» оператором, т. к. «запутывает» логическую структуру программы, однако бывают ситуации, когда программа без goto получается более громоздкой, чем с goto. Пример: предыдущая программа без goto. //Ex 024_no_goto. c – демонстрация goto #include


