* 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
1.2 KiB
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;
}
However, care must be taken to use goto very carefully.