Files
freeCodeCamp/guide/english/cplusplus/goto/index.md
Nischay Hegde 321ee3e69d Changed the file to reflect standards (#27542)
* Changed the file to reflect standards

`goto` is generally discouraged for use in C++, which wasn't what this was saying. Dijkstra even [said](http://www.u.arizona.edu/~rubinson/copyright_violations/Go_To_Considered_Harmful.html), "The go to statement as it stands is just too primitive; it is too much an invitation to make a mess of one's program." in 1968. This file seemed to indicate the opposite.

* fix: fixed grammar
2019-06-24 15:24:30 -07:00

1.2 KiB

title
title
goto

Intro to the use of goto and labels

goto is one of the most powerful pieces of logic in C/C++. Crazy amounts of optimization can be achieved using goto, provided it is used properly. It is, however, discouraged for use in C++, since better ways of programming exist, and it leads to spaghetti code
It does exactly what it is named as. It goes to the mentioned occurence of the next label, wherever may it be.

Terminology

goto - The keyword used to go to the particular label.
label - this can be named anything.

syntax

goto label; //This takes the program flow to the next appearance of label.

goto is something that transcends all loops. To be clearer on this point, here is an example.

#include <iostream>
using std::cout;

int main() {
for(;;)
{
if(1)
goto label;

}
label:
cout << "lol"; //here, goto is used to get out of an otherwise infinite loop. That is one of the only places where goto is tolerated.
    return 0;
}

Try the code here!

However, care must be taken to use goto very carefully.