GOTO
GOTO is een statement binnen programmeertalen dat de uitvoering op een ander punt in een programma verder doet gaan.
In de procedurele (3e generatie) programmeertalen die met name in de jaren 70 en 80 werden ingezet, gaf het statement GOTO de programmeur de mogelijkheid de besturing op elke gepast en ongepast ogenblik op een totaal andere plek in het programma voort te zetten. Met name in COBOL, dat voor verreweg de meeste geautomatiseerde administratieve toepassingen werd gebruikt, was dit statement vaak een uitkomst wanneer complexe programma's werden geschreven en de programmeur geen vat kreeg op de totale programmastructuur. De zogenaamde spaghetti-programma's vonden hier hun oorsprong, doelend op de sliertenbrij van opdrachten die langs en door elkaar heen liep.
Vaak werd het GOTO-statement gebruikt wanneer programmatuur moest worden aangepast door programmeurs die niet zelf de oorspronkelijke auteurs van de programma's waren. Voor het inbouwen van enkele voorwaardelijke opdrachten werd al snel naar het GOTO-statement gegrepen, zeker als de programmastructuur toch al niet te best zichtbaar was.
De leesbaarheid en daarmee de onderhoud van deze programma's kwam behoorlijk druk te staan. De oplossingen werden steeds meer gevonden in het gestructureerd programmeren. Iteraties en keuzestructuren met bijbehorende statements verdreven GOTO uit de gestructureerde programma's. In de meeste nieuwe programmeertalen is het statement GOTO verdwenen.
Bekende tegenstander van het GOTO-statement en voorvechter van het gestructureerd programmeren was de bekende Nederlandse informaticus Edsger Dijkstra.
[bewerk] Voorbeeld
Voorbeeld in BASIC, een van de oudere programmeertalen:
10 PRINT "Hoeveel is 7 - 7?" 20 INPUT A 30 IF A = 0 THEN GOTO 60 40 PRINT "Fout, probeer opnieuw!" 50 GOTO 20 60 PRINT "Correct!" 70 END