goto (GOTO, GO TO or other case combinations, depending on the programming language) is a statement found in many computer programming languages. It performs a one-way transfer of control to another line of code; in contrast a function call normally returns control. The jumped-to locations are usually identified using labels, though some languages use line numbers. At the machine code level, a goto is a form of branch or jump statement.
Many languages support the goto statement, and many do not. In Java, goto is a reserved word, but is unusable. In PHP there was no native support for goto until version 5.3 (libraries were available to emulate its functionality).
The structured program theorem proved that the goto statement is not necessary to write programs; some combination of the three programming constructs of sequence, selection/choice, and repetition/iteration are sufficient for any computation that can be performed by a Turing machine.
In the past there was considerable debate in academia and industry on the merits of the use of goto statements.