Il existe certains cas (rares) où le goto peut réellement améliorer la lisibilité. En fait, la documentation à laquelle vous avez fait référence donne deux exemples :
Une utilisation courante de goto consiste à transférer le contrôle à une étiquette de cas de commutation spécifique ou à l'étiquette par défaut dans une instruction de commutation.
L'instruction goto est également utile pour sortir de boucles profondément imbriquées.
Voici un exemple pour ce dernier point :
for (...) {
for (...) {
...
if (something)
goto end_of_loop;
}
}
end_of_loop:
Bien sûr, il existe d'autres moyens de contourner ce problème, par exemple en transformant le code en une fonction, en utilisant un bloc factice autour du code, etc. cette question pour plus de détails). À titre d'information, les concepteurs du langage Java ont décidé d'interdire les éléments suivants goto complètement et introduire une pause labellisée à la place.