КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Операторы перехода
Цикл while-do Цикл repeat-until ЦИКЛЫ АЛЬТЕРНАТИВЫ Операторы выбора используются для выбора одного из нескольких возможных путей, по которому должно выполняться вычисление. Обобщенный оператор выбора называется case- оператором (switch-оператор в языке С). Условный оператор является частным случаем case- или switch-оператора, в котором выражение имеет булев тип. Так как булевы типы имеют только два допустимых значения, условный оператор делает выбор между двумя возможными путями. Конструкция для двух альтернатив на Паскале имеет следующий вид: if L then begin {Действие при L-True} end; else begin {Действие при L=False} end; здесь L-логическое выражение. Вариант конструкции для нескольких альтернатив имеет вид: Switch: = 0; L1: =... L2: =... L3: =... if L1 then Swich: = 1; if L2 then Swich: = 2; if L3 then Swich: = 3; case Swich of 1: begin {Действие при L1=True} end; 2: begin {Действие при L2=True} end; 3:begin {Действие при L3=Тrие} end; else begin {Вывод сообщения об ошибочном кодировании модуля} end; end; {End of Case} Оператор цикла имеет одну точку входа, последовательность операторов, которые составляют цикл, и одну или несколько точек выхода. Чтобы циклы завершались, с точкой выхода бывает связано условие, которое определяет, следует сделать выход или продолжить выполнение цикла. Циклы различаются числом, типом и расположением условий выхода. Универсальные циклы в Паскале имеют следующие конструкции. {Подготовка} {Подготовка} While L do repeat {тело цикла} until L; здесь L -логическое выражение, которое при значении True является условием продолжения выполнения while-do или условием окончания выполнения repeat-until. Подготовка и тело цикла являются цепочками функциональных узлов. Тело цикла выполняется столько раз, сколько и весь цикл. При равноценности, из двух конструкций выбирают ту, запись которой короче. Операторы цикла наиболее трудны: в них легко сделать ошибку, особенно на границах цикла. Очень часто количество итераций цикла известно заранее: это либо константа, известная при написании программы, либо значение, вычисляемое перед началом цикла. Цикл со счетчиком можно запрограммировать следующим образом: for <параметр_цикла>:= <нач_знач> to <кон знач> do <оператор>; здесь for, to, do — зарезервированные слова; <параметр _цикла> — переменная любого перечисляемого типа. Цикл выполняется для каждого из значений от <нач_знач> и до <кон_знач>. Оператор безусловного перехода имеет следующий вид: goto, здесь goto — зарезервированное слово: <метка> — метка. Метка - это произвольный идентификатор, позволяющий именовать некоторый оператор программы и таким образом ссылаться на него. Можно теоретически показать, что достаточно if- и while-операторов, чтобы записать любую необходимую управляющую структуру. Однако есть несколько вполне определенных ситуаций, где лучше использовать оператор goto. Первая состоит в том, что многие циклы не могут завершаться в точке входа, как этого требует цикл while. Вторая ситуация, которую легко запрограммировать с помощью goto, - выход из глубоко вложенного вычисления. Например, если глубоко внутри вызовов процедур обнаружена ошибка, что делает неверным все вычисление. В этой ситуации естественно запрограммировать выдачу сообщения об ошибке и возвратить в исходное состояние все вычисление. Однако для этого требуется сделать возврат из многих процедур, которые должны знать, что произошла ошибка. Проще и понятнее выйти в основную программу с помощью goto. В языке С нет никаких средств для обработки этой ситуации (не подходит даже goto по причине ограниченности рамками отдельной процедуры), поэтому для обработки серьезных ошибок нужно использовать средства операционной системы. В современных языках Object Pascal, Ada, C++ и Eiffel есть специальные языковые конструкции, так называемые исключения, которые непосредственно решают и эту проблему.
Дата добавления: 2014-12-16; Просмотров: 419; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |