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

Answer "Why is there no goto?" in the Design and History FAQ.
This commit is contained in:
Terry Jan Reedy 2021-03-14 18:12:04 -04:00 committed by GitHub
parent bd2fa3c416
commit 5e29021a5e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 1 deletions

View file

@ -600,7 +600,15 @@ test cases at all.
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
reasonable uses of the "go" or "goto" constructs of C, Fortran, and other
languages. For example::

View file

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