Goto considered harmful

From CSSEMediaWiki
(Difference between revisions)
Jump to: navigation, search
Line 1: Line 1:
This is not particularly relevant to higher level languages such as Java which do not have goto statements (note that in Java "goto" is a reserved keyword but is not used), but in low level languages such as Fortran goto statements are considered bad practice.
+
This is not particularly relevant to higher level languages such as Java which do not have goto statements (note that in Java "goto" is a reserved keyword but is not used), but in low level languages such as Fortran and C goto statements are considered bad practice.
  
 
This is because, simply put, goto statements make the behaviour of a program harder to understand. To quote Dijkstra "...the quality of programmers is a decreasing function of the density of go to statements in the programs they produce." The harder a program is the understand, the harder it is to maintain.
 
This is because, simply put, goto statements make the behaviour of a program harder to understand. To quote Dijkstra "...the quality of programmers is a decreasing function of the density of go to statements in the programs they produce." The harder a program is the understand, the harder it is to maintain.
  
 
The excessive use of goto statements can use to very convoluted code with a complicated flow of control. Such code is sometimes called [[Spaghetti code]]
 
The excessive use of goto statements can use to very convoluted code with a complicated flow of control. Such code is sometimes called [[Spaghetti code]]
 +
 +
In most cases where it becomes tempting to use a goto statement a more elegant solution is to break the method in question into several submethods.
  
 
== See also ==
 
== See also ==
 
* [[Design maxims]]
 
* [[Design maxims]]
 
* [[Spaghetti code]]
 
* [[Spaghetti code]]

Revision as of 04:47, 20 July 2009

This is not particularly relevant to higher level languages such as Java which do not have goto statements (note that in Java "goto" is a reserved keyword but is not used), but in low level languages such as Fortran and C goto statements are considered bad practice.

This is because, simply put, goto statements make the behaviour of a program harder to understand. To quote Dijkstra "...the quality of programmers is a decreasing function of the density of go to statements in the programs they produce." The harder a program is the understand, the harder it is to maintain.

The excessive use of goto statements can use to very convoluted code with a complicated flow of control. Such code is sometimes called Spaghetti code

In most cases where it becomes tempting to use a goto statement a more elegant solution is to break the method in question into several submethods.

See also

Personal tools