Оператор GOTO позволяет изменить последовательность выполнения шагов программы, но его применение нежелательно, так как увеличивается время выполнения, снижается наглядность и понимаемость программы. В предыдущих версиях BASICa не было возможности отказаться от применения GOTO, так как практически не существовало других языковых элементов для управления программой. GOTO Метка_перехода
Метка_перехода Объявленная в программе метка. Метка объявляется произвольным именем, заканчивающимся двоеточием.
Пример 1:
В приведенной ниже программе происходит переход к последнему оператору PRINT, В результате на экране получаем сообщение "Хелло, Долли!". 'Оператор GOTO CLS PRINT "Хелло, " GOTO weiter PRINT "Здесь проявляется GOTO"; Welter: ‘Метка перехода PRINT "Долли!" 'Конец программы
Если указать в операторе GOTO метку, не объявленную в программе, то при запуске программы, появится соответствующее сообщение об ошибке. Если одну метку объявить в программе дважды, тоже появится сообщение об ошибке.
Пример 2:
В этом примере представлена "бесконечная" (зациклившаяся) программа, которая всегда возвращается к своему началу. 'Зациклившаяся программа (прервать нажатием клавиш "CTRL" + "Pause") anfang: PRINT 234.23 GOTO anfang 'Недосягаемый конец программы
Пример 3:
Последний пример показывает, насколько плохую услугу при конструировании программ оказывает оператор GOTO. 'Как не надо писать программы anfang: GOTO schritti schritt4: PRINT "совсем непонятная " GOTO schritt5 schritt6: GOTO ende schritti: CLS GOTO schritt2 schrin3: PRINT "простая, но " GOTO schritt4 schritt2: PRINT "Это очень" GOTO schrin3 Schritt5: PRINT "программа." GOTO schritt6 PRINT "Здесь работает Goto-" ende: PRINT "Наконец готово!" 'Конец программы