diff options
Diffstat (limited to 'Doc')
-rw-r--r-- | Doc/faq/design.rst | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/Doc/faq/design.rst b/Doc/faq/design.rst index f91b51b..65d6a8e 100644 --- a/Doc/faq/design.rst +++ b/Doc/faq/design.rst @@ -599,7 +599,15 @@ sloppy and not write 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:: |