Many people seem to hate "GOTO," and I can sympathize with them. The use of GOTO statements can make a program's code very messy. However, whether a programmer likes it or not, they use GOTOs in every program. They go by names such as functions, loops, if statements, and switches.
The GOTO is used in each of these, but it happens transparently. When a programmer uses a loop, GOTOs are used automatically by the compiler to move back to the beginning of the loop. When a function is called, the current position in the code (which is, of course, located in memory) is placed onto a "stack," and then a GOTO is used to go to the code for the function called. When the function completes, it "pops" the previous code location off the stack and uses another GOTO to return there.
If statements must use GOTOs to decide what segment of code to run, and for the same reasons switches must use GOTOs as well.
Thus, if you think about it, GOTOs are very important and useful, aren't they?