Вот два эквивалентных отрывка кода.
1)
input type, amount
if type="вклад"
then balance=balance+amount
print "принят вклад в размере: ", amount
print "благодарим вас за пользование услугами нашего банка!"
else if type="снятие"
then if amount<= balance
then balance=balance-amount
print "сумма снятия: ", amount
else print "недостаточная сумма на счете"
end if
else print "неопознанная операция"
end if
end if
2)
100 DEFSTR T
110 INPUT TYPE, AMOUNT
120 IF TYPE<>"ВКЛАД" THEN GOTO 170
130 BALANCE=BALANCE+AMOUNT
140 PRINT "ПРИНЯТ ВКЛАД В РАЗМЕРЕ: ", AMOUNT
150 PRINT "БЛАГОДАРИМ ВАС ЗА ПОЛЬЗОВАНИЕ УСЛУГАМИ НАШЕГО БАНКА!"
160 GOTO 250
170 IF TYPE<>"СНЯТИЕ" THEN GOTO 220
180 IF AMOUNT<=BALANCE
THEN BALANCE=BALANCE-AMOUNT : PRINT "СУММА СНЯТИЯ: ",AMOUNT
ELSE PRINT "НЕДОСТАТОЧНАЯ СУММА НА СЧЕТЕ"
210 GOTO 240
220 '
230 PRINT "НЕОПОЗНАННАЯ ОПЕРАЦИЯ"
240 '
250 '
260 '
260 END
Каждому, кто хоть немного знаком с Бейсиком, ясно, что строки 120 и 170 образуют ветвление, а строка 160 - обход. Этому учат в учебниках по Бейсику. И знающие язык люди сразу же обнаруживают такие конструкции в контексте. Научиться этому намного проще, чем выучить премудрости Паскаля. Ежу понятно, что второй вариант дает фору запутанной макаронине с тремя вложенными циклами из первого.
При глубокой вложенности условий в Паскале только и остается, что корпеть над тем какой именно end if к какому именно if относится. Это можно делать до тех пор, пока рак на горе свистнет. Не так в Бейсике. Тут все просто - увидел GOTO в конце IF - значит все, что до этой метки - true, а после нее false (в старых версиях можно было вообще опустить GOTO и просто указать метку). Конец уровня вложенности прослеживается буквально. Увидал переход назад значит ищи LOOP или WHILE... А в Паскале решили, что и так сойдет.
Очень интересное решение имеется в Фокале, там метка может быть сложной, например: 10.1, 10.2 или вовсе 33.44.11...
В Бейсике очень просто отличить хороший код от плохого. Если типические конструкции не дают ключа к пониманию смысла - значит код хренов. Все что понаписал Дейкстра относительно GOTO и Бейсика относится именно к хреновому коду. В Паскале же хороший код зачастую неотличим от хренового. Поэтому Дейкстра не создал условий для написания хорошего кода, он просто окончательно запутал вопрос, предоставив теоретикам разбираться в том, какая из его сомнительных идей более правильная.
Кроме того, использование GOTO гораздо более провокативно в хорошем смысле - оно заставляет нормального программиста оставлять между переходами не слишком много места и все повторяющиеся простыни выносить под GOSUB, а значит - по факту подталкивает к использованию идей структурного программирования. А вообще, Эсперанто учить нужно. Говорят, на нем можно любую мысль в два счета выразить.