mirror of
https://github.com/python/cpython.git
synced 2025-09-30 20:31:52 +00:00
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:
parent
cf8d6ef962
commit
c3f03333c3
2 changed files with 10 additions and 1 deletions
|
@ -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::
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Answer "Why is there no goto?" in the Design and History FAQ.
|
Loading…
Add table
Add a link
Reference in a new issue