Skip to content

Commit

Permalink
bpo-43199: Briefly explain why no goto (GH-24852)
Browse files Browse the repository at this point in the history
Answer "Why is there no goto?" in the Design and History FAQ.
  • Loading branch information
terryjreedy committed Mar 14, 2021
1 parent bd2fa3c commit 5e29021
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 1 deletion.
10 changes: 9 additions & 1 deletion Doc/faq/design.rst
Expand Up @@ -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::
Expand Down
@@ -0,0 +1 @@
Answer "Why is there no goto?" in the Design and History FAQ.

0 comments on commit 5e29021

Please sign in to comment.