bpo-43199: Briefly explain why no goto (GH-24852)

Answer "Why is there no goto?" in the Design and History FAQ.
(cherry picked from commit 5e29021a5e)

Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
This commit is contained in:
Miss Islington (bot) 2021-03-14 21:21:36 -07:00 committed by GitHub
parent cf8d6ef962
commit c3f03333c3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 1 deletions

View file

@ -601,7 +601,15 @@ test cases at all.
Why is there no goto? Why is there no goto?
--------------------- ---------------------
You can use exceptions to provide a "structured goto" that even works across In the 1970s people realized that unrestricted goto could lead
to messy "sphagetti" code that was hard to understand and revise.
In a high-level language, it is also unneeded as long as there
are ways to branch (in Python, with ``if`` statements and ``or``,
``and``, and ``if-else`` expressions) and loop (with ``while``
and ``for`` statements, possibly containing ``continue`` and ``break``).
One can also use exceptions to provide a "structured goto"
that works even across
function calls. Many feel that exceptions can conveniently emulate all function calls. Many feel that exceptions can conveniently emulate all
reasonable uses of the "go" or "goto" constructs of C, Fortran, and other reasonable uses of the "go" or "goto" constructs of C, Fortran, and other
languages. For example:: languages. For example::

View file

@ -0,0 +1 @@
Answer "Why is there no goto?" in the Design and History FAQ.