На этом шаге мы рассмотрим конструкцию Goto.
Кроме условных конструкций имеются конструкция, осуществляющая безусловную
передачу управления:
В тексте программы должна присутствовать указанная метка. Этой меткой отмечается оператор, которому нужно передать управление. Под меткой понимается любая последовательность букв и цифр, однако в качестве меток лучше использовать последовательности, имеющие смысл.
Встретив этот оператор в программе, компьютер перейдет на метку, которая указана после служебного слова Goto. Затем выполняется оператор, следующий за меткой. Помеченный оператор записывается после метки и символа ":" (двоеточие).
Проиллюстрируем использование метки на конкретном примере. Пусть требуется
составить программу, находящую действительные корни квадратного уравнения
ax2+bx+c=0 при заданных значениях коэффициентов a, b и c. Программа,
реализующая эту задачу, представлена на рисунке 1:
Рис.1. Пример использования Goto
Прокомментируем приведенный текст программы. Прежде чем использовать метку, ее
необходимо описать. Для этого в декларации предназначена секция Label.
Переход на метку abc осуществляется тогда, когда вычисленный дискриминант
(значение переменной d) оказывается меньше нуля. Меткой abc помечен
пустой оператор.
Как правило, при составлении программ можно обойтись без использования оператора
Goto. Приведем текст программы, решающей ту же задачу, но без использования
Goto (рис.2):
Рис.2. Пример программы без использования Goto
Если дискриминант окажется меньше нуля, то будет выведено сообщение:
Действительных корней нет, и компьютер перейдет на End с точкой,
так как это следующая конструкция, идущая после условной конструкции. Если дискриминант
будет больше или равен нулю, проверяемое условие (d<0) окажется ложным,
и компьютер пойдет на выполнение ветви Else, где вычисляются и выводятся на
экран значения переменных x1, x2.
На следующем шаге мы заканчиваем разбор условных и безусловных конструкций
оператором варианта.