Introduction
L’instruction goto (de l’anglais go to, en français aller à) est une instruction présente dans de nombreux langages de programmation. Elle est utilisée pour réaliser des sauts inconditionnels dans un programme. L’exécution est renvoyée vers une étiquette ou label, qui est soit un numéro de ligne donné, soit une étiquette déclarée, selon le langage.
L’instruction goto, directement héritée des instructions de saut des langages machines, était nécessaire dans les langages primitifs (Fortran II/IV, BASIC) comme instruction de base permettant de réaliser des boucles et autres structures de contrôles.
Depuis la révolution de la programmation structurée des années 1970, l’instruction goto n’est guère appréciée des programmeurs modernes, car elle rend souvent les programmes plus difficiles à comprendre et à maintenir (on parle dans ce cas de programmation spaghetti). On utilise plus généralement des structures comme les sauts conditionnels (if .. then .. else ..) ou les boucles (for, while, etc.) qui font partie intégrante de tous les langages de programmation modernes.
Dans certains langages, d’autres instructions effectuent des sauts inconditionnels et remplacent quelques usages de l’instruction goto. C’est le cas des instructions comme continue ou [break](/fr/definitions/break)[type=embedded-definition], que l’on trouve dans les langages dérivés du C, et des exceptions.