Проанализируем, как осуществляются ветвления Паскаль. В Паскале применяется 2 оператора для реализации условных переходов, а именно if и case и еще один оператор для реализации безусловного перехода — goto. С их помощью может быть нарушен последовательный порядок выполнения программы. Остановимся поподробнее на каждом из операторов. Оператор условного перехода в Паскале представляется в виде:
Условие — это логическое выражение, от которого зависит выбор одной из двух альтернативных ветвей алгоритма. Если условие принимает значение true (истина), выполняется оператор1, помещенный за ключевым словом then. Иначе выполняется оператор2, записанный за ключевым словом else (в этом случае оператор1 опускается).
Когда указанные операторы выполнены, то программа переходит к выполнению команды, стоящей после оператора if. И помните, что никогда не ставится символ «;» перед else (иначе возникает синтаксическая ошибка). Ключевое словоelse может как присутствовать, так и отсутствовать в операторе if:
Но тогда в случае, когда не выполнено логическое условие, то управление передается оператору, которые стоит в программе после конструкции if.
Заметка. Синтаксис языка Паскаль позволяет записать только один оператор после ключевых слов then и else, вследствие этого группа инструкций должна быть объединена в составной оператор (заключить между служебными слова begin и end). Иначе происходит логическая ошибка программы, и компилятор ошибок не выдает, однако программа все-таки работает неправильно. Приведем примеры:
В процессе создания программы часто приходится производить выбор одного из нескольких альтернативных путей выполнения программы. Мы уже знаем, что подобный выбор организуется при помощи оператора if. Однако для большего удобство используют другой специальный оператор выбора case, формат которого представлен ниже:
либо с ключевым словом else:
Мы видим, что за ключевым словом else записано некоторое выражение. Оно называется селектором, может иметь любой перечисляемый тип. В нашем примере в состав «варианта» входит одна или большее количество констант или диапазонов, которые разделяются запятыми. Необходимо, чтобы они принадлежали к одному и тому же типу, что и селектор.
При этом не допускается более одного упоминания варианта в записи инструкции case. Из указанного множества операторов выбирается тот оператор, перед которым записан совпадающий со значением селектора вариант. В противном случае, выполняется оператор, следующий за словом else (в случае, если таковой имеется). Приведем пример:
Оператор безусловного перехода goto
И, наконец, перейдем к рассмотрению безусловного оператора goto:
При выполнении программы оператор goto осуществляет переход к помеченному оператору программы (перед ним стоит метка). Она должна быть представлена в разделе описания меток той или иной функции и процедуры, в которой она используется (не рекомендуется переходить из одной функции или процедуры в другую, иначе ошибка программы). В исходном тексте программы необходимо существование оператора, зафиксированного определенной меткой (уже знаем, что ставится она перед оператором и разделяется символом «:»).
Пример:
Приведенные выше опера условного и безусловного перехода помогут Вам правильно организовать ветвления Паскаль.